2012-05-30 14 views
24

jqueryベースのファイルアップロードプラグインhttp://blueimp.github.com/jQuery-File-Upload/を実装しています。 https://github.com/maxpavlov/jQuery-File-Upload.MVC3をダウンロードできるサンプルMVC3アプリがあります。下記のフォームの宣言を使用するコールAJAXのハンドラとしてMVCアクションを使用するために、* @ MVC3アクションファイルサイズ制限

サンプルの作者は、ホームビューにコメントしています。 ONEは、セキュリティをSUCRIFICEと大きな認めない限り、これは、大きなファイルは無用のアップロードの機能をキャストPOSTリクエスト OF maxMessageLengthを制御することはできません要求を処理するためにMVCコントローラを使用していつからITはお勧めできません (ONEはコメントアウト) POST MESSAGEは、サイト全体のサイズを調整します。

ITは、MVCフレームワークは PERアクションBASIS * @

ON maxMessageLengthを設定する方法を提供し、これはまだケースになるまでUPLOAD要求を処理するHTTPハンドラを使用した方がよいですか?

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

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

更新:

この記事によるとFile Upload ASP.NET MVC 3.0デフォルトのファイルサイズ制限が4メガバイトです。この制限はhttp://msdn.microsoft.com/en-us/library/e1f13641.aspxであり、この脆弱性を理解しています。

4mbを超えるコントローラーアクションでファイルをアップロードする唯一の方法ですか?

答えて

48

あなたはlocation要素用いた具体的なコントローラのアクションのためにweb.configファイルにアップロードサイズの制限を設定できます

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

ホームは、コントローラ名とUploadFilesはアクション名です。サイズ制限は40MBです。

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

+0

私が探していたもの。ありがとう! – Rich

+2

"location" XMLノードは... "configuration"の子でなければなりませんか? (web.config内)。あなたが指定できますか? – sports

+1

@sportsはい、ノードの子です。私の更新された答えをチェックアウトする。あなたの入力をありがとう:) – lucask