鉴于在这儿提问的很多人不会使用Google,或者错误估计问题的难度。我就不多说了,直接上URL
好的,大叔,我先看看,我都是百度,谷歌上搜问题解决方案跟百度不同的么
大叔你好,你的url链接对我来说没有什么参考价值。我现在是涉及到具体的步骤了,需要的是对问题的分析,而不是泛泛而谈
浏览器端上传大文件,要么flash控件、要么silverlight控件、要么自己写个控件,你说的300M内存满了,那就把阀值调大一点。你如果不满意这么做,鉴于你用的.net,可以考虑用silverlight写个上传控件,文件流初始化的时候不需要所占内存与文件大小无关,所占的内存仅与你每次需要上传的块的大小有关。
例如,代码:
FileStream fs = new FileStream(@"e:\office2013\cn_office_professional_plus_2013_x86_x64_dvd_1149708.iso", FileMode.Open);
int bufferLength = 1042 * 8; byte[] buffer = new byte[bufferLength]; fs.Read(buffer, 0, bufferLength);
这个iso文件有1.6GB,但是你上传的时候所占内存仅与bufferLength有关。
silverlight在浏览器端是允许你用c#操作文件的。后面的你懂的。
您好,这是浏览器上传,所以我想客户电脑内存加载300MB及以上是不能接受的。Silverlight又要客户端安装.net框架。所以我准备ie9以下浏览器用ActiveX插件,其他浏览器用html5上传。谢谢您的回答。