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

测试
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.NET中,我们可以使用多线程来实现文件的上传和下载功能。下面是一个简单的示例: 1. 多线程上传文件: - 首先,我们需要创建一个上传文件的方法,该方法接受要上传的文件路径作为参数。 - 在方法中,我们可以使用`ThreadPool.QueueUserWorkItem`方法来在线程池中启动一个新的线程来执行上传操作。 - 在新线程中,我们可以使用`WebClient`类的`UploadFile`方法来实现文件上传。可以设置上传的目标URL和文件路径。 - 在文件上传完成后,我们可以通过回调机制或其他方式通知用户上传已完成。 2. 多线程下载文件: - 类似地,我们首先需要创建一个下载文件的方法,该方法接受文件的下载链接和保存路径作为参数。 - 在方法中,我们也可以使用`ThreadPool.QueueUserWorkItem`方法来在线程池中启动一个新的线程来执行下载操作。 - 在新线程中,我们可以使用`WebClient`类的`DownloadFile`方法来实现文件下载。可以设置下载的链接和保存的文件路径。 - 在文件下载完成后,同样可以通过回调机制或其他方式通知用户下载已完成。 需要注意的是,多线程操作涉及到线程同步和资源共享的问题,我们需要确保在不同线程中的操作不会造成数据错误或资源冲突。可以使用锁或其他线程同步机制来解决这些问题。 此外,还可以通过设置线程优先级、线程池大小等方式来优化多线程操作的性能和效果。 总之,通过在VB.NET中使用多线程,我们可以实现文件的高效上传和下载功能,提高用户体验和系统性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值