Struts 2アップロードファイルのサイズ制限方法の解析を修正します。


まずstrutsアップロードの最大サイズは二つのところで決めます。
 ・struts.multiiprt.maxSizeが全体のpostのformを決定するのは最大どれぐらいの大きさなので、この制限は最初です。デフォルトのサイズは2 M近くで、strutsのdefault.propertiesで定義されます。
 ・fileupladInterceptorではmaximSize最大ファイルサイズを定義できます。
最初の定義はstruts.xmlで定義されていましたが、有効ではありませんでした。その後、工事中のstruts.propertiesに設定されていることが分かりました。ですので、上書きされました。struts.propertiesの設定を変更すると有効になります。
ここで一つの問題がテストされていません。multiipad formの中に二つのファイルがアップロードされているなら、fileupladInterceptorの設定の最大サイズは合計ですか?それとも各ファイルに対してですか?しかし、検証されませんでした。
次に、Struts 2を見て、アップロードファイルのサイズを変更します。解決方法は以下の通りです。

<struts> 
   <constant name="struts.multipart.maxSize" value="20971520" /> <!--         20MB(1024*1024*20) --> 
   <package name="build" extends="struts-default"> 
    <action name="fileUpload" class="com.home.UploadAction" method="upload"> 
      <result name="success">/success.jsp</result> 
      <result name="input">/error.jsp</result> 
      <!-- <param name="allowedTypes"></param>        --> 
      <interceptor-ref name="fileUpload"> 
        <param name="maximumSize">5242880</param> 
      </interceptor-ref> 
      <interceptor-ref name="defaultStack" /> <!--       --> 
    </action> 
   </package> 
</struts> 
struts.multiiprt.maxSizeとfileUpload傍受のmaximSizeの属性分業が違います。
1、struts.multiiprt.maxSizeはプロジェクト全体にアップロードされたファイルの最大sizeを制御します。この値を超過しました。バックグラウンドのエラーが発生しました。
the request was reject because its size(51224434)exceeds the configred maximm(20971520)
2、fileUploadスクリーンのmaximSize属性はstruts.multiipad.maxSizeの値より小さい必要があります。
struts.multiiprt.maxSizeのデフォルトの2 Mは、maximSizeが2 Mより大きい場合、struts.multiipad.maxSizeの値がmaximSizeより大きいように設定しなければなりません。
3、アップロードされたファイルがmaxSizeとmaximSizeの間にある場合、システムヒント
The file is to large to be uplloaded:file“apache-tomcat-7.0.47 zip”“uplload_”94 d 9 d 06 c_a 45 f_b 91 e 4 c 915 c 02_0000002.tmp「8782342」
4、アップロードファイルがmaximSizeより小さい場合、アップロードに成功します。
まとめ:アップロードしたファイルのサイズは<maximSize>maxSize
以上はStruts 2アップロードファイルのサイズ制限方法の解析の全部の内容についてです。皆さんに助けてほしいです。このサイトの他の関連テーマを参照してください。何か問題があればいつでもメッセージを残してください。