转自:http://www.tuicool.com/articles/JrmUJ3
引言
之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件。之前弄过上传图片的demo,就使用该demo进行测试。可以查看我的这篇文章: [Asp.net]Uploadify所有配置说明,常见bug问题分析 。
大文件上传
第一步:修改uploadify参数
1 'fileSizeLimit': '0',//单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值 2 'fileTypeDesc': '文件',//文件描述Image Files 3 'fileTypeExts': '*.zip; *.rar; *.png',//允许上传的文件类型
测试,用一个大于30M的文件,进行上传测试。
第二步:修改web.config
1 <configuration> 2 <system.web> 3 <compilation debug="true" targetFramework="4.5" /> 4 <!--maxRequestLength就是文件的最大字符数,最大值不能超过2个G左右,executionTimeout是超时时间--> 5 <httpRuntime targetFramework="4.5" maxRequestLength="1073741824" executionTimeout="3600" /> 6 </system.web> 7 </configuration>
测试,仍使用上面的文件,进行上传测试。
第三步:添加system.webServer节点
1 <configuration> 2 <system.web> 3 <compilation debug="true" targetFramework="4.5" /> 4 <!--maxRequestLength就是文件的最大字符数,最大值不能超过2个G左右,executionTimeout是超时时间--> 5 <httpRuntime targetFramework="4.5" maxRequestLength="1073741824" executionTimeout="3600" /> 6 </system.web> 7 <system.webServer> 8 <security> 9 <requestFiltering> 10 <!--修改服务器允许最大长度--> 11 <requestLimits maxAllowedContentLength="1073741824"/> 12 </requestFiltering> 13 </security> 14 </system.webServer> 15 </configuration>
测试,仍然用上面的文件,进行上传测试:
设置IIS
打开IIS管理器,找到Default Web Site。先进行停止。
在IIS中双击“请求筛选”打开。
点击右边的“编辑功能设置”,打开“编辑请求筛选设置”对话框。
其中的允许的最大容量长度,默认是”30000000“,30M,将其修改为1073741824,即1G。
启动IIS.
总结
在项目中遇到了这样的问题,也花了点时间找解决方案,觉得既然花费了时间去找解决方案,就有必要总结一下,希望能帮到遇到同样问题的你。 这里不再提供demo,以可以从我上篇文章中下载,注意修改的地方已在本文章说明。
----------------------------------------------------------------------
公司有个项目
要求上传附件大小限制在50MB,原本以为可以轻松搞定。在编译模式下可以上传大文件,可是在IIS7下(自己架的服务器),一上传大的文件就会出现 Http 404错误,偶尔有的文件还有IO. error错误。一直搞不明白,在网上搜索大概了解上传控件分为两种上传模式:
1,将文件一次性读到内存中,然后再写到服务上。这样,如果文件太大就会导致服务响应变慢。
2,国外的上传控件Lion.Web.UpLoadModule,AspnetUpload(我也是通过网上搜索的),是将文件分块读取,读一些,写一些到硬盘上的。
我也未深入研究uploadify这个上传控件是不是第 2 种方法,就是拿过来用。
找了好久终于让我找到一篇文章解决了Http 404 的问题(好东西大家分享)
http://hi.baidu.com/v71000/blog/item/3ff017f7e13f727fdcc4748f.html
用uploadify在IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误。
查了半天,原来是IIS7下的默认设置限制了上传大小。这个时候Web.Config中的大小设置也就失效了。
具体步骤:
1、打开IIS管理器,找到Default Web Site。先进行停止。
2、在IIS中双击“请求筛选”打开。
3、点击右边的“编辑功能设置”,打开“编辑请求筛选设置”对话框。
其中的允许的最大容量长度,默认是”30000000“,30M,将其修改为你所需要的大小即可。
4、启动IIS.
这样大文件的上传就解决了,在这之后继续写一些uploadify的心得,记录下来!