在遍历了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、搞定收工。(这鱼没有白吃啊)
经过上述修改,现在的上传变成了,程序指定文件大小,如果超过,则弹出错误提示。
这样一来,就好多了,最起码自己能接受了,跟用户解释也不太费劲了。
在遍历了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、搞定收工。(这鱼没有白吃啊)
经过上述修改,现在的上传变成了,程序指定文件大小,如果超过,则弹出错误提示。
这样一来,就好多了,最起码自己能接受了,跟用户解释也不太费劲了。
分享到:
相关推荐
### IIS上传文件大小限制配置详解 #### 一、IIS上传文件大小限制概述 在Internet Information Services (IIS)中,默认情况下对于上传文件的大小是有限制的,这一限制通常被设定为30MB。这样的限制对于大多数小型...
- 需要注意的是,除了Tomcat内部的配置之外,可能还需要检查操作系统层面或其他中间件(如防火墙或负载均衡器)是否也有限制上传文件大小的设置。 #### 进一步分析 - **配置理解** `max-file-size`和`max-...
### Squid 文件上传大小配置详解 #### 一、引言 在互联网应用中,代理服务器是一种常见的技术手段,用于提供安全、高效的网络访问服务。Squid 作为一款开源的高性能代理缓存软件,在众多场景中得到了广泛的应用。...
首先,maxSize参数用于设置文件上传的最大文件大小,以字节为单位。如果设置为-1,则表示不限大小。这意味着用户可以上传任意大小的文件,这可能会对服务器造成压力。 savePath参数用于设置文件保存路径。如果留空...
在IT领域,特别是Web开发与部署的过程中,设置上传文件的最大大小是一项非常重要的配置。这不仅关系到系统的稳定性和性能,还直接影响用户体验。本文将详细解释如何通过修改`web.config`文件来实现对上传文件最大...
查wiki可知,上传文件大小相关的有三个配置 client_body_buffer_size 配置请求体缓存区大小, 不配的话, client_body_temp_path 设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中...
### 服务器修改默认上传文件大小 在服务器管理与配置的过程中,经常会遇到用户上传大文件时出现失败的情况。这种情况通常是由于服务器对于上传文件的大小有限制所导致的。本文将详细介绍如何在服务器上修改默认的...
本文将深入探讨如何有效地解决phpMyAdmin上传文件大小限制的问题,包括理解相关配置、修改核心参数以及确保服务器资源合理分配等关键步骤。 ### 一、理解phpMyAdmin上传文件大小限制 phpMyAdmin的上传文件大小限制...
### PHP上传文件大小限制的解决办法 在进行Web开发时,常常会遇到用户需要上传文件的需求。对于较大的文件上传,可能会出现上传失败的情况,这主要是因为PHP对上传文件的大小有限制。本文将详细介绍如何调整PHP配置...
文件上传配置与图片上传类似,只需在`fileUp.jsp`中导入`Uploader`类并配置相应的`fileUrl`和`filePath`。 【目录结构】 在项目根目录`webroot`下,ueditor位于`/resources/ueditor`,图片上传的保存路径为`/...
修改上传文件大小限制的操作虽然简单,但用户在进行配置时需要确保拥有足够的权限,并且要小心谨慎,避免因操作不当造成系统或其他应用程序出现问题。如果对系统配置不熟悉,建议在更改之前备份相关配置文件,并在...
这里,`client_max_body_size`设置了允许的最大上传文件大小,`upload_pass`指定了处理文件上传的内部location,`upload_set_form_field`用来设置上传文件的相关信息,`upload_cleanup`定义了错误发生时的清理行为...
总的来说,在Asp.Net Web端判断上传文件大小,既需要在后端进行严格的检查,也要配合前端的验证,同时注意配置IIS或`web.config`以限制整体请求大小和执行时间。这样可以有效地保护服务器资源,提升系统安全性。
总结来说,服务器上传文件大小扩大涉及到多个层面的调整和优化,包括服务器配置、网络协议、编程语言处理、优化策略以及安全措施。理解并掌握这些知识点,可以帮助我们有效地处理大文件上传问题,提升服务的稳定性和...
当涉及到大文件上传时,IIS默认的设置可能无法满足需求,因为其对上传文件大小的限制较为保守。本文将深入探讨如何在IIS中修改上传文件大小的限制,确保服务器能够顺利处理大型文件的上传。 ### IIS上传文件过大的...
本文将详细讲解如何在不同框架和环境中设置`FileUpload`上传文件大小的限制。 1. **Servlet容器配置**: - **Tomcat**:在`web.xml`文件中,可以通过`<multipart-config>`元素设置最大上传文件大小。例如: ```...
在处理文件上传功能时,Struts框架会涉及到文件大小的限制,以防止恶意用户上传过大的文件导致服务器资源耗尽。本篇文章将详细探讨Struts文件上传大小限制的问题。 首先,我们需要理解文件上传的基本流程。在Struts...
首先,我们需要知道的是,如果你的应用程序托管在IIS(Internet Information Services)上,IIS自身就提供了上传文件大小的限制配置。在IIS管理器中,你可以针对每个网站或应用程序池调整此设置。具体步骤如下: 1....
解决 ASP.NET 上传文件大小限制 在 ASP.NET 中,默认的文件上传大小限制为 2M,但是这限制了我们在实际项目开发过程中的文件上传需求。因此,我们需要解决 ASP.NET 上传文件大小限制的问题。本文将从四个方面对解决...
此外,除了`maximumSize`,还可以配置`allowedTypes`来限制上传文件的类型,以及`headerNames`来检查HTTP头信息等。 4. **异常处理**: 当文件大小超过限制时,Struts2会抛出异常。我们可以通过配置全局结果或者在...