|  | 主题:  asp.net文件上传的问题 | 
            
                        
                
                    |  5D荣誉斑竹
 职务:普通成员
 等级:2
 金币:1.0
 发贴:343
 注册:2001/11/7 20:32:29
 
 | 
                            
                            #12001/11/7 22:06:59 
                                在使用asp.net上传文件的时候,我发现有这样一个问题:上传的文件大小有限制,好像是不能超过4m。请问,如何能突破这个限制?
 | 
                        
                
                    |  张无忌
 职务:普通成员
 等级:1
 金币:0.0
 发贴:18
 注册:2001/1/25 1:04:47
 
 | 
                            
                            #22001/11/8 21:13:43 
                                這個應該是服務器對超時的反應時間所決定的!上傳這麽大的的東西,本來就不應該用web上傳。
                                
                                
                                
                             | 
                        
                
                    |  5D荣誉斑竹
 职务:普通成员
 等级:2
 金币:1.0
 发贴:343
 注册:2001/11/7 20:32:29
 
 | 
                            
                            #32001/11/8 23:13:11 
                                服務器對超時的反應時間?不大可能吧? 我在局域网内部试验,带宽是100m,怎么会有超时的反应? 另外,楼上的老兄,你不知道“领导的话都是对的”吗 :-)))    | 
                        
                
                    |  张无忌
 职务:普通成员
 等级:1
 金币:0.0
 发贴:18
 注册:2001/1/25 1:04:47
 
 | 
                            
                            #42001/11/9 0:11:48 
                                呵呵呵呵!那我就不知道了!  asp.net只是粗解一些,並不擅長呀。
                                
                                
                                
                             | 
                        
                
                    |  BendisE
 职务:普通成员
 等级:1
 金币:0.0
 发贴:4
 注册:2002/9/29 21:15:47
 
 | 
                            
                            #52005/10/27 11:08:16 
                                对于asp.net,默认只允许上传2M文件,增加如下配置,一般可以自定义最大文件大小.
 <httpRuntime
 
 executionTimeout="300"
 
 maxRequestLength="40960"
 
 useFullyQualifiedRedirectUrl="false"/>
 
 如果还不行,可以使用思归提供的方案:
 
 我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的,可以参考这个帖子研究一下产生这个错误的机理。
 
 handling server error when upload file too large
 
 解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据
 
 IServiceProvider provider = (IServiceProvider) HttpContext.Current;
 HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
 byte[] bs = wr.GetPreloadedEntityBody();
 ....
 if (!wr.IsEntireEntityBodyIsPreloaded())
 {
 int n = 1024;
 byte[] bs2 = new byte[n];
 while (wr.ReadEntityBody(bs2,n) >0)
 {
 .....
 }
 }
 
 
 还有把你的代码贴出来这样方便解决
 |