26

jquery ベースのファイル アップロード プラグインhttp://blueimp.github.com/jQuery-File-Upload/を実装しています。https://github.com/maxpavlov/jQuery-File-Upload.MVC3をダウンロードできるサンプル MVC3 アプリがあります。

サンプルの作成者は、ホーム ビューにコメントを持っています。

@*MVC アクションを AJAX 呼び出しのハンドラーとして使用するには、以下のフォーム宣言を使用します。(コメントアウトされたもの) MVC コントローラーを使用してリクエストを処理する場合はお勧めできません POST リクエストの maxMessageLength を制御できないため、セキュリティを犠牲にし、大きなポスト メッセージ サイズを許可しない限り、これは大きなファイルのアップロード機能を役に立たなくしますサイト全体。

MVC フレームワークがアクションごとに maxMessageLength を設定する方法を提供するまでは、HTTP ハンドラーを使用してアップロード要求を処理することをお勧めします *@

これはまだですか?

web.config でを設定できることがわかりました<httpRuntime maxRequestLength="x" />が、これはセキュリティ上の脆弱性であると理解しています。ケースもですか?

HttpHandler を使用する代わりに、コントローラーでアップロードを処理したいのですが、ファイル サイズによって制限されたくないし、必要がなければセキュリティの脆弱性を導入したくありません。

アップデート:

この投稿File Upload ASP.NET MVC 3.0によると、デフォルトのファイル サイズ制限は 4 MB です。この制限http://msdn.microsoft.com/en-us/library/e1f13641.aspxを確認し、脆弱性を理解しました。

これは、4 MB を超えるコントローラー アクションを介してファイルをアップロードする唯一の方法ですか?

4

1 に答える 1

52

location要素を使用して、具体的なコントローラーアクションのアップロードサイズ制限をweb.configで設定できます。

<configuration>
    <location path="Home/UploadFiles">
        <system.web>
            <httpRuntime maxRequestLength="40960"/>
        </system.web>
    </location>
</configuration>

ここで、 Homeはコントローラー名であり、UploadFilesはアクション名です。ここでのサイズ制限は40MBです。

それでも、ファイルのアップロードを処理するためにHttp Handlerを使用することは、私に言わせれば悪い解決策ではありません。

于 2012-05-31T13:14:02.477 に答える