首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络安全-> 教你一招
利用.NET的File控件上传文件的最终解决方案(个人版)-.NET教程,Asp.Net开发
作者:网友供稿 点击:115
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
 

在遍历了csdn中所有关于上传大文件的帖子以后,写了这片垃圾。(:-))
上传大文件,有好几种方法:
1、思归的httpworkerrequest方法,太难,看不懂:-(
2、利用第三方的控件 aspnetupload 要钱!!算了,咱还是喜欢免费的。
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、搞定收工。(这鱼没有白吃啊)

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


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Java 中开源的CMS系统-JSP教程,Java技巧及代码
·ASP.NET服务器控件发送脚本-ASP教程,远程脚本
·javaCC学习笔记-JSP教程,Java技巧及代码
·asp.net中的模态对话框-ASP教程,ASP应用
·在.net应用程序中使用用户控件-.NET教程,组件控件开发
·身份证15位转换成18位代码(vbscript)-ASP教程,脚本编码
·基于dsp控制的数字式双向dc/dc变换器的实现
·利用Asp.net 动态创建DataList-ASP教程,ASP应用
·最佳的数据库分页方法-ASP教程,数据库相关
·利用JAVA技术进行XML编程(第一部分)-JSP教程,Java与XML
最新文章
·网关防护做得好web威胁少一半_教你一招教程
·计算机安全十大建议_教你一招教程
·给ie加个参数 永远不怕ie主页被修改_教你一招教程
·修改十四项设置 打造安全牢靠易用电脑_教你一招教程
·论垂直搜索引擎存在的意义_站长心得
·简单分析个人网站最缺少的几点要素_站长心得
·个人网站赢利探讨:网站究竟是如何盈利的?_站长心得
·网站设计的思考网页版面布局的原理_站长心得
·建立用自己域名结尾的hotmail邮箱2_站长心得
·随时保障系统安全五步搞定补丁管理部署_教你一招教程
相关主题
  • 利用.net反射动态调用指定程序集的中的方法_asp.net技巧
  • 利用.NET语言开发自己的脚本语言(二)--动态编译-.NET教程,.NET Framework
  • 利用.NET语言开发自己的脚本语言(一)-.NET教程,.NET Framework
  • 利用.NET的Reflection增强对象工厂的扩展性-.NET教程,.NET Framework
  • 利用.NET的XML序列化解决系统配置问题-.NET教程,XML应用
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭