青蛙推荐:大文件上传问题,整理自csdn论坛
优采云 发布时间: 2021-07-01 19:12青蛙推荐:大文件上传问题,整理自csdn论坛
提出问题:
如果使用上传文件,服务器先将文件保存到内存,上传完成后再保存到磁盘。
If:如果上传1G的文件,服务器内存不足,性能会大打折扣。我的想法是通过上传保存到磁盘来解决问题,但是我遇到了这样一个问题:获取的数据流是上传后的数据流。
-----
传输大文件不适合在国内直接使用
要写成activex控件,嵌入aspx页面
此控件完成文件上传:
1.将要上传的文件分成小包,文件名如:guid-1.m,guid-2.m
2.写入配置文件,记录文件名,以及包的总数,包的大小
3. 控件依次上传文件,服务器接收后需要对传入的参数进行判断。当总包数等于当前包数时,合并文件
4. 1g 的内容在网上上传需要很长时间,
deallock time要设置的很长,Web.config中的httpRuntime部分也要设置
-----
默认只能上传4M文件。如果要上传更大的文件,需要在web.config中设置
maxRequestLength="819200"
executionTimeout="900"/>
-----
使用WEB上的ACTIVEX控件,确定用户上传的目录。对于用户来说,与在WEB上上传是一样的。在WEB上选择一个上传文件,管理还是和完全通过WEB上传一样。 ,我不认为这有什么问题。 FTP稳定,为什么不使用它?
用VB制作FTP的activex很简单,网上也有很多。部分可以直接使用,界面稍作修改即可。
-----
在/Microsoft.NET/Framework/v1.0.3705/CONFIG/machine.config文件中,找到maxRequestLength并将其值改为你需要的值,如
maxRequestLength="10240",表示可以上传10M文件
-----
在B/S架构下,文件上传很难继续。如果速度真的很慢,打开后台线程上传是不安全的。
-----
我个人认为用c/s上传文件,用b/s管理文件是终极方案