<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    修改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、搞定收工。(這魚沒有白吃啊)

    經過上述修改,現在的上傳變成了,程序指定文件大小,如果超過,則彈出錯誤提示。
    這樣一來,就好多了,最起碼自己能接受了,跟用戶解釋也不太費勁了。

     


    文章來源:http://www.cnblogs.com/wangdetian168/archive/2008/06/25/1229963.html
    posted on 2010-09-28 11:02 sanmao 閱讀(222) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产国产人免费人成成免视频| 青青草原亚洲视频| 亚洲免费视频播放| 18女人水真多免费高清毛片| 亚洲大尺度无码专区尤物| 国产一二三四区乱码免费| 国产亚洲色婷婷久久99精品| 在线播放免费人成毛片乱码| 亚洲码国产精品高潮在线| 97无码人妻福利免费公开在线视频| 在线亚洲人成电影网站色www| 国产免费播放一区二区| 国产成人亚洲精品91专区手机| 四虎影视久久久免费| 亚洲综合伊人久久大杳蕉| 日韩电影免费在线观看| 亚洲小说图片视频| 国产色爽免费视频| 九九热久久免费视频| 亚洲成色在线影院| 无码日韩人妻av一区免费| 国产成人+综合亚洲+天堂| 自拍偷自拍亚洲精品被多人伦好爽 | 77777亚洲午夜久久多喷| 黄页网站在线看免费| 麻豆亚洲AV成人无码久久精品 | 无码国产精品一区二区免费3p| 久久久亚洲欧洲日产国码aⅴ| 可以免费看黄的网站| 日韩一区二区三区免费播放| 亚洲精品无码成人AAA片| 国产精品免费精品自在线观看| 亚洲乱色伦图片区小说 | 国产人成免费视频| 免费成人在线电影| 亚洲精品无AMM毛片| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲?V无码成人精品区日韩| 岛国岛国免费V片在线观看| 亚洲乱人伦精品图片| 久久精品国产精品亚洲下载 |