如何在ASP.NET中上传文件到数据库
2008-01-03 11:18
423 查看
上回谈到了如何下载文件,包含数据库中的文件,动态产生的文件...等。
这次我们来看看怎么把文件上传到数据库中,这边需要注意一个小地方,在上传文件到数据库的部分,数据栏位的性态若是Access请选择Ole对象,若是SQL Server请选择Image格式。
接着您可以通过下面的代码进行文件的上传:
If Me.FileUpload1.PostedFile.ContentLength > 0 Then
Dim cn As New Data.OleDb.OleDbConnection
Dim dc As Data.OleDb.OleDbCommand
Dim para As Data.OleDb.OleDbParameter
Dim SQL, FileName As String
'连线字符串
cn.ConnectionString = Me.AccessDataSource1.ConnectionString
cn.Open()
'运行 TextBox 中的 SQL 指令
FileName = Me.FileUpload1.PostedFile.FileName
SQL = "insert into FileStorage (FileName,FileBody) values ('" & FileName & "',?)"
'建立 SqlCommand 对象
dc = New Data.OleDb.OleDbCommand(sql, cn)
para = New Data.OleDb.OleDbParameter("file", Data.OleDb.OleDbType.Binary)
para.Value = Me.FileUpload1.FileBytes
dc.Parameters.Add(para)
'运行(通过 Parameters 将文件存储到数据库)
dc.ExecuteNonQuery()
ShowAlertMsg("上传文件存储完毕!")
Else
ShowAlertMsg("上传文件不存在!")
End If
上传至数据库中的文件,可以通过下面的方式重新下载回来,请特别这注意这张网页在调用的时候必须提供文件编号做为URL中的命令行参数:
Me.AccessDataSource1.SelectCommand = "select * from FileStorage where uid=" & Request.QueryString("FileID")
Dim dv As Data.DataView = Me.AccessDataSource1.Select(New DataSourceSelectArguments)
'准备下载文件
Response.ClearHeaders()
Response.Clear()
Response.Expires = 0
Response.Buffer = True
Dim fileName As String = dv.Item(0).Item("FileName")
'通过 Header 设定文件名
Response.AddHeader("content-disposition", "attachment; filename=" & Chr(34) & System.Web.HttpUtility.UrlEncode(IO.Path.GetFileName(fileName), System.Text.Encoding.UTF8) & Chr(34))
Response.ContentType = "Application/octet-stream"
'传出要让使用者下载的内容
Response.BinaryWrite(dv.Item(0).Item("FileBody"))
'释放资源
Response.End()
整个范例请参考:
http://video.studyhost.com/Download/Example/ASP.NET/FileUploadAndDownloadWithDB.rar
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1869097
这次我们来看看怎么把文件上传到数据库中,这边需要注意一个小地方,在上传文件到数据库的部分,数据栏位的性态若是Access请选择Ole对象,若是SQL Server请选择Image格式。
接着您可以通过下面的代码进行文件的上传:
If Me.FileUpload1.PostedFile.ContentLength > 0 Then
Dim cn As New Data.OleDb.OleDbConnection
Dim dc As Data.OleDb.OleDbCommand
Dim para As Data.OleDb.OleDbParameter
Dim SQL, FileName As String
'连线字符串
cn.ConnectionString = Me.AccessDataSource1.ConnectionString
cn.Open()
'运行 TextBox 中的 SQL 指令
FileName = Me.FileUpload1.PostedFile.FileName
SQL = "insert into FileStorage (FileName,FileBody) values ('" & FileName & "',?)"
'建立 SqlCommand 对象
dc = New Data.OleDb.OleDbCommand(sql, cn)
para = New Data.OleDb.OleDbParameter("file", Data.OleDb.OleDbType.Binary)
para.Value = Me.FileUpload1.FileBytes
dc.Parameters.Add(para)
'运行(通过 Parameters 将文件存储到数据库)
dc.ExecuteNonQuery()
ShowAlertMsg("上传文件存储完毕!")
Else
ShowAlertMsg("上传文件不存在!")
End If
上传至数据库中的文件,可以通过下面的方式重新下载回来,请特别这注意这张网页在调用的时候必须提供文件编号做为URL中的命令行参数:
Me.AccessDataSource1.SelectCommand = "select * from FileStorage where uid=" & Request.QueryString("FileID")
Dim dv As Data.DataView = Me.AccessDataSource1.Select(New DataSourceSelectArguments)
'准备下载文件
Response.ClearHeaders()
Response.Clear()
Response.Expires = 0
Response.Buffer = True
Dim fileName As String = dv.Item(0).Item("FileName")
'通过 Header 设定文件名
Response.AddHeader("content-disposition", "attachment; filename=" & Chr(34) & System.Web.HttpUtility.UrlEncode(IO.Path.GetFileName(fileName), System.Text.Encoding.UTF8) & Chr(34))
Response.ContentType = "Application/octet-stream"
'传出要让使用者下载的内容
Response.BinaryWrite(dv.Item(0).Item("FileBody"))
'释放资源
Response.End()
整个范例请参考:
http://video.studyhost.com/Download/Example/ASP.NET/FileUploadAndDownloadWithDB.rar
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1869097
相关文章推荐
- jQuery ajax 如何将文件与所有的表单数据上传到 ASP.NET服务器
- asp.net(c#)如何读取上传过程中的.txt文件中的数据,并将其写入数据库的
- asp.net如何上传大文件?
- 如何解决ASP.NET中的文件上传大小限制的问题
- asp.net中如何上传文件
- ASP.NET 2.0 - 如何把上传的文件保存到 服务器某个目录中
- ASP.NET如何上传超过4M的文件
- asp.net如何读取xml文件中的数据
- asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输
- ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。
- ASP.NET中上传并读取Excel文件数据示例
- ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程
- 如何在ASP.NET中上传文件到数据库
- asp.net上传excel2003/2007文件数据到数据库
- Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[上]
- Asp.NET大文件上传组件开发总结(四)---封送数据给Asp.NET页面
- ASP.NET中上传并读取Excel文件数据
- Scott Mitchell 的ASP.NET 2.0数据教程之54:上传文件
- ASP.Net如何把文件从一台服务器上传到另外一台服务器
- asp.net中如何解决4M以上文件的上传