asp.net实现文件夹的上传和下载,asp.net实现文件夹的上传和下载解决方案,asp.net实现文件夹的上传和下载思路,asp.net实现文件夹的上传和下载源码,asp.net实现文件夹的上传和下载实例,asp.net实现文件夹的批量上传和下载,asp.net实现大文件上传和下载,asp.net实现大文件分块上传和下载,asp.net实现大文件加密上传和下载,asp.net实现大文件分片上传和下载,
后端用了asp.net,c#.net,csharp,.net core,.net mvc。客户需求是需要在前端,WEB页面中实现文件夹的上传和下载功能,前端用了WebForm,vue2,vue3,html5,客户是政府单位,经常要传文件夹。
网上搜了一圈,几乎全部都是用HTML5来实现的,找了一些文章看了一下,几乎全部都只提到了上传的实现,借助于HTML5的API,也就是chrome提供的一个特殊的API,几乎全部都没提到下载,下载基本上的方案也都是打包,但是我们这边的情况有点特殊,用户传的文件夹也不小,一般都有几百几千个文件吧,文件有大有小,有的是1G,有的是10G,这样的话,文件夹一共就有50G左右了
在服务器上打包的话,首先慢,其实占服务器资源,主要是占存储空间,而且垃圾清理机制做的不好的话,服务器硬盘空间很快就满了。所以要求不能以打包的方式下载。
然后就是用户下载的体验不是特别好,下载的话,一次性下载不完,需要支持断点续传,用户下载一部分后要下班了,明天需要继续下载。这些都是痛点,HTML5和chrome提供的这个特殊的API还是不太能够满足用户的需求。还是需要进行定制开发。
断点续传,就是在文件上传的过程中发生了中断,人为因素(暂停)或者不可抗力(断网或者网络差)导致了文件上传到一半失败了。然后在环境恢复的时候,重新上传该文件,而不至于是从新开始上传的。
断点续传的功能是基于分块上传来实现的,把一个大文件分成很多个小块,服务端能够把每个上传成功的分块都落地下来,客户端在上传文件开始时调用接口快速验证,条件选择跳过某个分块。
实现原理,就是在每个文件上传前,就获取到文件MD5取值,在上传文件前调用接口,如果获取的文件状态是未完成,则返回所有的还没上传的分块的编号,然后前端进行条件筛算出哪些没上传的分块,然后进行上传。
当接收到文件块后就可以直接写入到服务器的文件中。
最新版本:6.5.40
在线代码:up6-asp-net: Web大文件上传-asp.net示例 - Gitee.com
安装.NET Framework 4.7.2
Download .NET Framework 4.7.2 | Free official downloads
框架选择4.7.2
添加3rd引用
编译项目
NOSQL
NOSQL无需任何配置可直接访问页面进行测试
SQL
使用IIS
大文件上传测试推荐使用IIS以获取更高性能。
使用IIS Express
小文件上传测试可以使用IIS Express
创建数据库
配置数据库连接信息
检查数据库配置
访问页面进行测试
相关参考:
源码工程文档:泽优上传下载-源码版-工程文档.pdf
源码报价单:泽优上传下载-源码版-2024.pdf
OEM版报价单:泽优上传下载-OEM版-2024.pdf
产品源代码:up6-code.zip
授权生成器:up6-lic-app.zip