How to upload a file to a Web server in ASP.NET by using Visual Basic .NET
》,英文没问题的话,Redirect到这篇文章好了。
使用Windows2003的iis 6.0会对文件上传的大小做一限制,这使得服务器更安全。默认的asp上传大小为200k,Asp.NET的大小为4M。网上有很多文章介绍如何突破IIS 6.0上传文章限制的,其实是适用于asp页面的文件上传,而在.NET环境中如何做的,我用google搜索了一下午,也没找到一篇中文的,万般无奈,见英文就脖子硬的我只好搜搜英文页面,总算在微软的MSDN上找到了比较标准的答案。不敢独享,献给象我一样英文欠佳的朋友。
默认情况下,ASP.NET 允许上传到Web服务器的文件为小于等于4096k,也就是4M,如果上传的文件大于设定的值,那么你会在浏览器页面看到“找不到服务器或DNS”之类的错误信息,一定会让你迷惑不解的,呵呵。如果希望上传更大的文件,那么就必须修改 Web.config 文件中 <httpRuntime> 节 maxRequestLength 参数的值。如果你使用VS.NET新建一个项目,那么VS.NET创建的 Web.config 文件中并没有加上 <httpRuntime>节,你可以自己加上就好了。注意要包在<system.web>节的里面。
如:
<httpRuntime maxRequestLength="409600" />
这样上传的文件就可以是小于等于400M了。文件修改保存后可以立即生效,不必重启IIS。
有时,我们希望整个服务器的应用都可以上传大的文件,那么可以在 Machine.config 文件中修改 <httpRuntime> 节 maxRequestLength 属性的值。要注意的是这个文件的位置可不是在Web服务的根目录下,而是在 /系统目录/Microsoft .NET/Framework/版本号/config目录下,(粗斜体根据具体环境设置)。例如我的环境下就应该是:C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG。也是设置好立即生效,不需重启IIS。
Web.config中的值可以覆盖Machine.config中的设置。
因为上传时ASP.NET首先将整个文件读进内存,然后再写入磁盘,所以,上传过大的文件会让服务器不堪重负的。