上传文件的问题 请高手指点下

新时代新目标新征程 2007-09-11 10:22:32
我用的是FILEUPLOAD 控件。想实现的是。点了确定后。根据上传的路径。把 文件读出来写到一个字符串。然后放到数据库的以个字段里。谁帮忙提供个代码谢谢啊
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vlysses 2007-09-11
  • 打赏
  • 举报
回复
首先你的数据库字段必须是大文本字段(blob等类型);
然后
if (uploadpic.Value.Length != 0)
{
Stream Stream_ZP = uploadpic.InputStream;
Byte[] Input_ZP= new Byte[uploadpic.Value.Length];
Stream_ZP.Read(Input_ZP, 0, uploadpic.Value.Length);
}
将Input_ZP存入该字段
ahone 2007-09-11
  • 打赏
  • 举报
回复
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language="VB" runat="server">
Sub Enter_Click(sender As Object, e As EventArgs)
'只有客户提交了文件和文件说明才继续执行
If uploadfile.PostedFile.FileName<>"" And Intro.Text<>"" Then
'第一步:获取上传的文件的各种信息,以备后面使用***********************
'下面变量分别表示文件的名称,文件MIME类型,和文件说明和文件大小
Dim filename,fileContentType,fileintro As String
Dim filesize as Long
'Path.GetFileName方法可以从任何一个路径字符串中获取文件名称
filename= Path.GetFileName(uploadfile.PostedFile.FileName)
filesize=uploadfile.PostedFile.ContentLength
fileContentType=uploadfile.PostedFile.ContentType
fileintro=intro.Text

'第二步:利用Stream对象将上传的文件保存到二进制数组中*******************
Dim buffer(filesize) As Byte '建立一个和文件大小一致的二进制数组
Dim objStream As Stream '定义一个Stream对象变量
objStream=uploadfile.PostedFile.InputStream '读取上传文件到Stream对象中
objStream.Read(buffer,0,filesize) '读取整个文件到buffer数租中


'第三步:将二进制数组中的数据保存到数据库中********************************
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("temp.mdb"))
Dim cmd As New OleDbCommand("Insert Into uploadfile(filename,filesize,filebody,fileintro,fileContentType,submit_date) Values(@filename,@filesize,@filebody,@fileintro,@fileContentType,@Submit_Date)", conn)
'给参数赋值
cmd.Parameters.Add(New OleDbParameter("@filename", OleDbType.Char,50))
cmd.Parameters("@filename").Value=filename
cmd.Parameters.Add(New OleDbParameter("@filesize", OleDbType.Integer))
cmd.Parameters("@filesize").Value=filesize
cmd.Parameters.Add(New OleDbParameter("@filebody", OleDbType.Binary))
cmd.Parameters("@filebody").Value=Buffer '这里是保存文件内容的二进制数组
cmd.Parameters.Add(New OleDbParameter("@fileintro", OleDbType.Char,250))
cmd.Parameters("@fileintro").Value=fileintro
cmd.Parameters.Add(New OleDbParameter("@fileContentType", OleDbType.Char,50))
cmd.Parameters("@fileContentType").Value=fileContentType
cmd.Parameters.Add(New OleDbParameter("@submit_date", OleDbType.Date))
cmd.Parameters("@submit_date").Value=Now()
'执行操作,插入记录
conn.open()
cmd.ExecuteNonQuery()
conn.close()

'下面可以重定向回首页
Response.Redirect("index.aspx")
End If
End Sub
</script>
<html>
<body>
<h4 align="center">上传文件到数据库</h4>
<form enctype="multipart/form-data" runat="server">
选择文件:<input id="uploadfile" type="file" runat="server">
<br>文件说明:<asp:textbox id="intro" runat="server"/>
<br><asp:Button id="enter" Text="提交" OnClick="Enter_Click" runat="server"/>
</form>
</body>
</html>

k_net1 2007-09-11
  • 打赏
  • 举报
回复
uploadpic.PostedFile.SaveAs(picPath);
漏了一点点不好意思!
k_net1 2007-09-11
  • 打赏
  • 举报
回复
//圖片上傳
string picName = "";
if (uploadpic.Value.Length != 0)
{
picName = System.IO.Path.GetFileName(uploadpic.PostedFile.FileName);
}
string picExt = "";
if (picName.Length > 0)
{
picExt = picName.Substring(picName.Length - 4, 4);
}
string picSavePath = "..\\AtthFiles\\News\\";
string picPath = System.Web.HttpContext.Current.Request.MapPath(picSavePath) + "news_picture_" + maxid + picExt;
string PathDB_pic;

这是我的上传图片的 (文件一样), 理解应该没问题吧! uploadpic是我的fileupload控件
k_net1 2007-09-11
  • 打赏
  • 举报
回复
fileupload自带就有那些方法呀
zhchg6666 2007-09-11
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧