2011-09-15 12 views
0

Struts2で.key拡張子のファイルに対してのみファイルのアップロードアクションを制限します。ファイルタイプをアプリケーション/オクテットストリームにstruts.xmlのfileUploadインターセプタで設定すると、拡張子を考慮せずに上記のコンテンツタイプを持つすべてのファイルをアップロードできますが、拡張子を.keyに制限する必要があります。struts2を使用してカスタムファイル拡張子のみのファイルアップロード操作を制限します。

答えて

1

上記の目標を達成するには2通りの方法があります。宣言allowedTypesのカンマ区切りリストを入力し、ファイルを制限するには、プログラムで宣言型と がするFileUploadインターセプタのparamとして

<action name="fileUpload" class="com.example.UploadAction"> 
    <interceptor-ref name="basicStack"/> 
    <interceptor-ref name="fileUpload"> 
     <param name="allowedTypes"></param> 
    </interceptor-ref> 
    <interceptor-ref name="validation"/> 
    <interceptor-ref name="workflow"/> 

    <result name="success"</result> 
</action> 
を指定することができますインターセプタを設定する必要性を避ける

より柔軟な方法は、プログラム的な方法でそれをチェックすることです プログラムでファイルタイプを制限するということは、setXContentType(String contentType)メソッドを介してActionクラスに渡される情報を使用することを意味します。

0

私は答えを得ました。 fileUploadインターセプタには、 "allowedExtensions"という別のパラメータ型を使用する必要があります。カンマ区切りの値で許可する拡張子をすべて入力します。また、特定のエラーのカスタムメッセージを追加することもできます。 Struts official site for file upload interceptorを参照してください。以下はその構文です。

<interceptor-ref name="fileUpload"> 
    <param name="allowedExtensions">key</param> 
</interceptor-ref> 
関連する問題