使用するNetのFileコントロールで大きなファイルをアップロードするソリューション


qdzx2008から選択したBlogは、csdnの大きなファイルのアップロードに関するすべての投稿を遍歴した後、このゴミを書いた.(:-))大きなファイルをアップロードするには、いくつかの方法があります.1、考えているHttpWorkerRequestの方法は、難しいです.わかりません:-(2、サードパーティのコントロールAspNetUploadを利用してお金がかかります!!まあ、私は無料が好きです.3、web.configファイルを修正しますが、間違いを捕まえることはできません.4、ftpでアップロードします.サーバーはftpサービスを提供する必要があります.仕方なく、サードパーティ式を選ぶしかありません.誰が私をバカにしましたか!(バカです.大丈夫です.魚をたくさん食べます.魚を食べると頭がいいそうです.)では、第3の方法をよく研究しましょう.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が自動的にオフになるまで、実行要求の最大秒数を許可します.単位は秒で、大きなファイルをアップロードするときにこれを大きくします.サーバメモリ512 Mの場合、160 Mサイズのファイルをアップロードできます.(試したことがありませんが、csdn上の投稿の一致した意見です.)ここまでconfigの設定はもう終わりました.しかし、アップロードされたファイルのサイズがこの設定のファイルサイズ範囲を超えると、表示するページが現在使用できないというエラーが発生します.Webサイトで技術的な問題が発生したり、ブラウザの設定を調整する必要があります.解决できないけど、それもこのミスをキャッチしよう!どうしようかな?最近魚を何匹か食べて、考えてみましたが、この間違いは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、    。(       )
      ,        ,        ,    ,       。
    ,    ,         ,           。