ホームページ  >  記事  >  バックエンド開発  >  .NET のファイル アップロード コントロールを使用して web.config ファイルを変更し、大きなファイルをアップロードする方法

.NET のファイル アップロード コントロールを使用して web.config ファイルを変更し、大きなファイルをアップロードする方法

高洛峰
高洛峰オリジナル
2016-12-24 13:01:441525ブラウズ

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 の設定はここまでです。

ただし、アップロードされたファイルのサイズがこの設定のファイル サイズ範囲を超えると、次のエラーが発生します: ページを表示できません 表示したいページは現在利用できません。 Web サイトで技術的な問題が発生しているか、ブラウザの設定を調整する必要がある可能性があります。

解決できませんが、このエラーをキャッチする必要があります。どうやってするの? このエラーはファイル コントロールによって発生するフォアグラウンド エラーであるため、バックグラウンドで try...catch を使用してキャッチしようとしても機能しません。

そこで、.NET のエラー キャプチャ ページのメカニズムを使用して処理することを考えました。それは可能です。

以下は引用された内容です:
1. まず web.config を設定します

<customErrors mode="On"/>

2. エラーをキャッチするための新しい error.aspx ファイルを作成します。

3. ファイルがアップロードされる aspx ページのフロント ページに page コマンドを追加します。 ErrorPage="UploadError.aspx"

4. error.aspx にコードを追加して、エラー メッセージがファイルに起因するフォアグラウンド エラーであるかどうかを判断します。

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(&#39;Upload file has failed ! File size is too large !&#39;)</script>"); 
} 
} 
}


.NET ファイル アップロード コントロールの使用方法の詳細については、web.config ファイルを変更して大きなファイルをアップロードします。関連記事については、PHP 中国語 Web サイトを参照してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。