csdn での大きなファイルのアップロードに関するすべての投稿を読んだ後、このゴミ記事を書きました。 (:-))
大きなファイルをアップロードするには、いくつかの方法があります。
1. Sigui の HttpWorkerRequest メソッドは難しすぎて理解できません:-(
2. サードパーティ コントロール AspNetUpload を使用してお金を要求します。 !それは忘れてください、私たちはまだ無料が好きです。
3. web.config ファイルを変更しますが、エラーを捕捉できません。
4. FTP経由でアップロードします。サーバーは FTP サービスを提供する必要があります。
私たちには第三の道を選ぶ以外に選択肢はありません。誰が私たちをこんなに愚かにするのでしょう。 (それは愚かすぎます。どうでもいいです。もっと魚を食べたほうがいいです。魚を食べると賢くなると聞きました。)
それから、3 番目の方法をよく研究してください。
Webcong ファイルを変更します。
<システム.ウェブ>
<httpRuntime maxRequestLength="40690"
useFullyQualifiedRedirectUrl="true"
実行タイムアウト = "6000"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
EnableVersionHeader="true"
/>
</system.web>
このうち、アップロードに密接に関係するものは次のとおりです。
maxRequestLength
ASP.NET でサポートされる最大ファイル アップロード サイズを示します。
この制限は、ユーザーがサーバーに大量のファイルを渡すことによって引き起こされるサービス拒否攻撃を防ぐために使用できます。
指定されたサイズは KB 単位です。
デフォルト値は 4096 KB (4 MB) です。
実行タイムアウト
ASP.NET によって自動的に閉じられるまでに、要求の実行が許可される最大秒数を示します。
単位は秒です。大きなファイルをアップロードする場合は、より大きな値を設定します。
サーバーのメモリが 512M の場合、160M のファイルをアップロードできます。 (私は試していません。これは csdn 上の多くの投稿の一致した意見です。)
「www.downcodes.com」
これでweb.configの設定は終了です。
ただし、アップロードしたファイルのサイズが設定されたファイル サイズの範囲を超えると、次のエラーが発生します。
ページを表示できません。 表示したいページは現在利用できません。 Web サイトで技術的な問題が発生しているか、ブラウザの設定を調整する必要がある可能性があります。
解決できませんが、このエラーを捕捉する必要があります。何をするか?
最近魚をいくつか食べたので考えてみました。このエラーはファイル コントロールによって発生するフォアグラウンド エラーであるため、try...catch を使用してバックグラウンドでそれをキャッチすることは現実的ではありません。
そこで、.NET のエラー キャプチャ ページのメカニズムを使用して処理することを考えました。それは可能です。
1. まず web.config をセットアップします
<customErrors mode="On"/>
2. エラーを検出するための新しい error.aspx ファイルを作成します。
3. ファイルがアップロードされる aspx ページのフロント ページにページ ディレクティブを追加します。 ErrorPage="アップロードエラー.aspx"
4. error.aspx にコードを追加して、エラー メッセージがファイルに起因するフォアグラウンド エラーであるかどうかを判断します。
パブリック クラス UploadError : System.Web.UI.Page
{
private void Page_Load(オブジェクト送信者、System.EventArgs e)
{
例外 ex = Server.GetLastError();
if (ex != null)
{
Response.Redirect("../error.aspx");
}
else //フォアグラウンドエラー ex は null 値です
{
Response.Redirect("uploadexcel.aspx?err=1"); //アップロード ページに再度ジャンプし、エラー メッセージを表示する err パラメータを追加します。
}
}
5. エラーメッセージを表示します。
パブリッククラスuploadexcel:System.Web.UI.Page
{
private void Page_Load(オブジェクト送信者、System.EventArgs e)
{
if (リクエスト["err"] == "1")
{
Page.RegisterStartupScript("budget","<script language = javascript>alert('ファイルのアップロードに失敗しました ! ファイル サイズが大きすぎます !')</script>");
}
}
}
6. それをやり遂げて、それで終わりです。 (この魚は無料ではありません。)
上記の修正後、アップロードはプログラムがファイルサイズを指定するようになり、それを超えるとエラーメッセージが表示されます。
そうすれば、少なくとも私はそれを受け入れることができ、ユーザーに説明するのはそれほど難しくなくなります。