VB.NET实现文件上传下载
1.文件上传
文件上传最好可以支持多文件上传,增加系统通用性
前端:
<form id="form1" method="post" enctype="multipart/form-data" runat="server">
<div>
<input name="file1" type="file" id="file1" multiple="multiple" style="width:286px;" />
<input name="submit1" type="submit" value="提交"/>
</div>
</form>
后台:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then
Dim Pfile As HttpPostedFile = Nothing
For i = 0 To Request.Files.Count-1
If Request.Files.Count > 0 Then
'获取上传的文件对象
Pfile = Request.Files(i)
'获取上传的文件完全限定名称(及包括后缀名)
Dim filename As String = Pfile.FileName
'获取上传文件的大小
Dim size As Int32 = Pfile.ContentLength
'设置存储路径
Dim path As String = "D:\test\"
'上传文件
Pfile.SaveAs(path & filename)
End If
Next
Response.Write("<script type='text/javascript'>alert('提交成功')</script>")
End If
End Sub
测试
提前把文件夹创建好。实际应用的话肯定会涉及到数据库的,一般会把文件的路径存放至数据库而不是将文件保存到数据库,且上传的位置一般都是项目的某个路径下。如果文件夹内存在名称相同的文件会被覆盖,这一点需要注意。
2.文件下载
文件下载主要工作在后台,且指定为文件下载的页面应该只做文件下载功能,并通过从其他页面用a标签链接过来完成下载功能
前端
UploadTest.aspx
<form id="form1" method="post" enctype="multipart/form-data" runat="server">
<div>
<input name="file1" type="file" id="file1" multiple="multiple" class="inputBorder" style="width:286px;" />
<input name="submit1" type="submit" value="提交"/>
</div>
</form>
<a href="DownloadTest.aspx">下载test2.txt</a>
DownloadTest.aspx前端什么都不需要,工作都在后台
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'获取需要下载的文件路径
Dim filePath As String = Server.MapPath("./") + "test2.txt"
'获取该文件对象
Dim file As New FileInfo(filePath)
'获取文件大小
Dim intFileLength As Int32 = file.Length
'获取文件名称
Dim fileName As String = file.Name
Response.AddHeader("Content-Disposition", "attachment; filename=" & fileName)
Response.AddHeader("Content-Length", intFileLength)
Response.ContentType = "application/octet-stream"
Response.WriteFile(filePath)
Response.Flush()
End If
End Sub
测试