IT技術(shù)

ASP.NET文件上傳大小的限制解決方案
作者:
來源: 本站
發(fā)布日期: 2017/7/27 15:37:07
點(diǎn)擊量: 6592次
【 字體:
背景顏色:

我們大家都知道ASP.NET為我們提供了文件上傳服務(wù)器控件FileUpload,默認(rèn)情況下可上傳的最大文件為4M,如果要改變可上傳文件大小限制,那么我們可以在web.config中的httpRuntime元素中添加maxRequestLength屬性設(shè)置大小,同時(shí)為了支持大文件上傳超時(shí)可以添加executionTimeout屬性設(shè)置超時(shí)時(shí)間。網(wǎng)上有很多這樣的例子,但實(shí)際情況是否是這樣嗎?

 
<httpRuntime maxRequestLength="" executionTimeout=""/>
 
測試環(huán)境
 
IIS 7.5、.NET 3.5 sp1
 
測試頁面UploadFile.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UploadFile.aspx.cs" Inherits="UploadFile" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>
測試頁面UploadFile.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class UploadFile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (FileUpload1.FileContent != null)
        {
            FileUpload1.SaveAs(Server.MapPath("/Files/"+FileUpload1.FileName));
        }
    }
}
實(shí)際測試
 
1.上傳小于4M的文件
 
選擇2.7M的pdf文件上傳

上傳提示成功

 2. 上傳大于4M的文件

 選擇上傳4.3M的pdf文件
 
 
上傳后報(bào)黃頁


3. 修改web.config文件,設(shè)置可上傳文件大小限制

 
修改web.config,增大可上傳文件的大小限制,增大執(zhí)行時(shí)間限制
 
<httpRuntime maxRequestLength="2048000" executionTimeout="600"/>
 
 重新選擇剛才4.3M的pdf文件,重新上傳

上傳成功
 
4. 上傳大于30M的的文件
 
 碰到這個(gè)問題的實(shí)際環(huán)境是我們使用了第三方的上傳文件組件,通過js調(diào)用第三方的ActiveX控件上傳文件,修改web.config后上傳大于30M的文件的時(shí)候,報(bào)了如下錯(cuò)誤

查看windows系統(tǒng)日志,可以看到如下的日志錯(cuò)誤,看到異常信息,我們可以猜測到是請(qǐng)求超長,但是我們?cè)O(shè)置了最大請(qǐng)求長度了啊,而且遠(yuǎn)遠(yuǎn)要大于30M。靜下來想一想可能是IIS限制的,查詢相關(guān)的IIS資料,發(fā)現(xiàn)果然是這樣。
 
異常消息: 超過了最大請(qǐng)求長度。
在 System.Web.HttpRequest.GetEntireRawContent()
   在 System.Web.HttpRequest.GetMultipartContent()
   在 System.Web.HttpRequest.FillInFormCollection()
   在 System.Web.HttpRequest.EnsureForm()
   在 System.Web.HttpRequest.get_HasForm()
   在 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   在 System.Web.UI.Page.DeterminePostBackMode()
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 
5. 修改IIS的配置
 
選中自己的站點(diǎn),并雙擊“請(qǐng)求篩選”

選擇右側(cè)的”編輯功能限制”

在彈出的頁面中,我們看到默認(rèn)請(qǐng)求限制正是30M

修改請(qǐng)求大小限制為合適的值即可,保存后重啟站點(diǎn)即可。
                         
 
總結(jié)
 
1. Asp.NET作為微軟的Web服務(wù)框架,其定義了web請(qǐng)求的大小限制和執(zhí)行時(shí)間限制。同時(shí)其為上傳文件提供了基礎(chǔ)的框架,并為我們提供了UploadFile服務(wù)器控件,其最終也是通過Http將文件數(shù)據(jù)傳輸?shù)椒?wù)器端,自然也受請(qǐng)求大小和執(zhí)行時(shí)間的限制,只是一般的請(qǐng)求都打不到這個(gè)極限,往往是上傳文件的時(shí)候才會(huì)觸及這個(gè)閥值。
 
2. IIS作為windows平臺(tái)上承載ASP.NET的法定服務(wù)器,按照正常邏輯來說,其也能統(tǒng)一設(shè)置發(fā)送到自己這里請(qǐng)求的大小限制。同時(shí)由于IIS只將針對(duì)特定類型的文件的請(qǐng)求路由到ASP.NET進(jìn)行處理,像js、css和圖片等請(qǐng)求是不受ASP.NET中請(qǐng)求大小的限制的,這也從一個(gè)側(cè)面說明有必要再IIS中添加控制。
 
3. 請(qǐng)求的長度校驗(yàn)只有先通過IIS的限制后,才有可能路由到ASP.NET,只有最終通過ASP.NET的長度限制校驗(yàn),才能正常的進(jìn)行后續(xù)的管道處理步驟。
掃一掃在手機(jī)打開當(dāng)前頁

Contact

聯(lián)系我們

告訴我們您想要的吧!我們?yōu)楫?dāng)?shù)乜蛻籼峁I(yè)、及時(shí)的服務(wù)
地址:云南省昆明市白云路368號(hào)
電話:400-871-8716 (工作時(shí)間:09:00-18:00(周一至周五))
何總:23592693
李總:53815112
亚洲日韩在线a在线观看,欧美激情 在线观看,97色伦图片97综合影院,成人AV天堂一二三在线观看,欧美色吧视频在线观看,国产l精品国产亚洲区,久久综合亚洲图片,99久久国产综合精品1,久久AⅤ无码AV高潮AV喷吹,亚洲综合无码一区二区三区不卡
福利视频无码| 亚洲图片在线欧美专区图片| 草裙社区精品视频三区| 天码AV无码一区二区三区四区 | 国产图区综合图区| 日本在线观看不卡| 国产福利一区二区精品秒拍 | 国产精品久久久久影院| 2021年最新久久久视精品爱| AV区无码字幕中文色| 亚洲成人黄色在线观看| 一本久道久久综合狠狠躁AV| 成熟女人特级毛片WWW免费| 亚洲情a成黄在线观看动漫尤物| 国产成人精选免费视频| 日产在线无码一二三四区| 成人毛片永久免费是看| 欧美最猛黑人xxxxx猛交| 中文字幕乱码亚洲V∧日本| 欧美一区二区影院| 日日日日做夜夜夜夜做无码| 91系列在线观看免费| 国产成人啪精品视频免费网| 又色又爽又黄又无遮挡的网站| 国产精品国产三级欧美二区| 无码精品一区二区三区在线| 曰本女人牲交全视免费播放| 欧美午夜性刺激在线看免费| 欧美日本一道道一区二区三| 亚洲毛片不卡AV在线播放一区| 日韩人妻无码免费视频一区二区三区 | 久久精品国产欧美日韩| 变态另类av手机版天堂| 国产香蕉尹人综合在线| 综合亚洲伊人午夜网| 国产精品亚洲а∨无码播放不卡| 少妇人妻无码专区精品| 精品一区二区久久久久久久网站 | 加勒比无码人妻东京热| 国产第一区精品视频ai换脸| 精品久久久影院|