选择显示字体大小

利用.net的file控件上传文件的最终解决方案(个人版)

在遍历了csdn中所有关于上传大文件的帖子以后,写了这片垃圾。(:-))
上传大文件,有好几种方法:
1、思归的httpworkerrequest方法,太难,看不懂:-(
2、利用第三方的控件 as.netupload 要钱!!算了,咱还是喜欢免费的。
3、修改web.config文件,但是不能捕获错误。
4、通过ftp的方式上传。服务器需要提供ftp服务。

没辙,只好选第三种方式,谁让咱太蠢了呢!(太蠢了,没有关系,要多吃鱼,听说吃鱼能聪明点。)

那就仔细专研第三种方式吧!

修改webcong文件:
<system.web>
<httpruntime maxrequestlength="40690"
         usefullyqualifiedredirecturl="true"
         executiontimeout="6000"
         usefullyqualifiedredirecturl="false"
     minfreethreads="8"
     minlocalrequestfreethreads="4"
      apprequestqueuelimit="100"
      enableversionheader="true"
         />
</system.web>

其中与上传有密切关系的是:
maxrequestlength
   指示 asp.net 支持的最大文件上载大小。
   该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。
   指定的大小以 kb 为单位。
   默认值为 4096 kb (4 mb)。

executiontimeout
   指示在被 asp.net 自动关闭前,允许执行请求的最大秒数。
   单位为秒,在上传大的文件时把这个设的大一些。


如果服务器内存512m,已可上传大小160m的文件。(没试过,csdn上众帖子的一致意见。)
'www.knowsky.com
到这里web.config的设置就已经结束。
可是一旦上传文件的大小超过了这个设置的文件大小范围就会发生如下错误:
该页无法显示
您要查看的页当前不可用。网站可能遇到技术问题,或者您需要调整浏览器设置。

虽然解决不了,那也要捕获这个错误啊!怎么办呢?
最近吃了几条鱼,想了想,由于这个错误是由file控件引发的前台错误,所以在后台想利用try...catch来捕获是行不通的。
于是想到了利用.net的错误捕获页面的机制来处理。可行哦。

1、先设置web.config
  <customerrors mode="on"/>
2、新建一个error.aspx 文件,专门用来捕获错误的。
3、在上传文件的aspx页面的前台页面里添加page指令。errorpage="uploaderror.aspx"
4、在error.aspx中添加一些代码来判断错误信息是否是file引起的前台错误。
   public class uploaderror : system.web.ui.page
   {
    private void page_load(object sender, system.eventargs e)
    {
     exception ex = server.getlasterror();
     if (ex != null)
     {
      response.redirect("../error.aspx");
     }
     else //前台错误ex为空值
     {  
      response.redirect("uploadexcel.aspx?err=1"); //重新跳转到上传页面,加上err参数是为了显示错误信息
     }
    }
   
5、显示错误提示。
   public class uploadexcel : system.web.ui.page
   {
    private void page_load(object sender, system.eventargs e)
    {
     if (request["err"] == "1")
     {
     page.registerstartupscript("budget","<script language = javascript>alert('upload file has failed ! file size is too large !')</script>");
     }
    }
   }
  
6、搞定收工。(这鱼没有白吃啊)

经过上述修改,现在的上传变成了,程序指定文件大小,如果超过,则弹出错误提示。
这样一来,就好多了,最起码自己能接受了,跟用户解释也不太费劲了。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons