• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 用.Net的File控件上传文件的解决方案

用.Net的File控件上传文件的解决方案

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了fileupload控件,file控件,vb file控件,html file控件,file控件赋值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
在遍历了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上众帖子的一致意见。) 
到这里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、搞定收工。(这鱼没有白吃啊)
经过上述修改,现在的上传变成了,程序指定文件大小,如果超过,则弹出错误提示。
这样一来,就好多了,最起码自己能接受了,跟用户解释也不太费劲了。
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • FileUpload 控件禁止手动输入的方法
  • 用.Net的File控件上传文件的解决方案

相关文章

  • 2018-08-20.Net Core简单使用Mvc内置的Ioc(续)
  • 2017-05-11[.net] 操纵自如-页面内的配合与通信
  • 2017-05-11asp.net SharpZipLib的压缩与解压问题
  • 2018-08-20Visual Studio 2015 配置 Opencv3.2的图文详解
  • 2017-05-11indexof 和 indexofany的区别介绍
  • 2017-05-11asp.net“服务器应用程序不可用” 解决方法
  • 2018-08-20ASP.NET Core环境变量和启动设置的配置教程
  • 2017-05-11利用AJAX与数据岛实现无刷新绑定
  • 2018-08-20.NET Core跨平台执行命令、脚本的方法详细
  • 2017-05-11获取App.config配置文件中的参数值

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net中javascript的引用(直接引入和间接引入)
    • ASP.NET实现从服务器下载文件问题处理
    • aspnetpager重写url(伪静态)配置实例
    • NET 弹出页面窗口选择返回值
    • ASP.NET Core Razor 页面路由详解
    • linq to sql中,如何解决多条件查询问题,答案,用表达式树!
    • 让GridView只显示特定用户的数据的方法
    • ASP.NET登录注册页面实现
    • Extjs4.1.x 框架搭建 采用Application动态按需加载MVC各模块完美实现
    • Coolite Cool Study 1 在Grid中用ComboBox 来编辑数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有