Struts 2ファイルのアップロードの例

Struts 2ファイルのアップロード例

ダウンロード–Struts2-File-Upload-Example.zip

Struts 2では、<s:file>タグを使用してHTMLファイルアップロードコンポーネントを作成し、ユーザーがローカルディスクからファイルを選択してサーバーにアップロードできるようにします。 このチュートリアルでは、ファイルアップロードコンポーネントset the maximum size and allow content type of the upload fileを使用してJSPページを作成し、アップロードされたファイルの詳細を表示します。

1. アクションクラス

ファイルアップロードのアクションクラス。ユーザーがアップロードしたファイルを保存する「File」変数、ファイル名とコンテンツタイプを保存する2つのString変数を宣言します。 「fileUpload interceptor」は、set” X” ContentType()およびset” X” FileName()を介して、アップロードされたファイルの詳細を自動的に挿入します。メソッド名のスペルが正しいことを確認してください。

P.S X is the variable to store the uploaded file.

ファイルのアップロード機能は「fileUpload Interceptor」に依存します。アクションのスタックに含まれていることを確認してください。 幸いなことに、デフォルトのスタックにはすでに「fileUpload Interceptor」が含まれています。

FileUploadAction.java

package com.example.common.action;

import java.io.File;

import com.opensymphony.xwork2.ActionSupport;

public class FileUploadAction extends ActionSupport{

    private File fileUpload;
    private String fileUploadContentType;
    private String fileUploadFileName;

    public String getFileUploadContentType() {
        return fileUploadContentType;
    }

    public void setFileUploadContentType(String fileUploadContentType) {
        this.fileUploadContentType = fileUploadContentType;
    }

    public String getFileUploadFileName() {
        return fileUploadFileName;
    }

    public void setFileUploadFileName(String fileUploadFileName) {
        this.fileUploadFileName = fileUploadFileName;
    }

    public File getFileUpload() {
        return fileUpload;
    }

    public void setFileUpload(File fileUpload) {
        this.fileUpload = fileUpload;
    }

    public String execute() throws Exception{

        return SUCCESS;

    }

    public String display() {
        return NONE;
    }

}

2. 結果ページ

<s:file>タグを使用してファイルアップロードコンポーネントをレンダリングし、set the form enctype type to “multipart/form-data”を使用します。

fileupload.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>






Struts 2 file upload example

result.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>



Struts 2 file upload example

File Name :

Content Type :

File :

3. struts.xml

それをすべてリンクしてください〜





    
    

    

    
        pages/fileupload.jsp
    

    
        
            
            
            text/plain
            10240
        
            
                dojo\..*,^struts\..*
            
            
                input,back,cancel,browse
            
            
                input,back,cancel,browse
            

        pages/result.jsp
        pages/fileupload.jsp

    
   

File Size Limits
この例では、「fileUpload interceptor」を使用してアップロードファイルのサイズ制限を設定します。この値はバイト単位でカウントされます。 この場合、アップロードファイルの最大サイズは10kbです。

アップロードファイルのデフォルトの最大ファイルサイズは2MBです

File Types
fileUpload interceptor」を使用して許可ファイルタイプを設定することもできます。 この場合、アップロードファイルは「text/plain」コンテンツタイプのみを受け入れます。

Struts 2では、同じローマをリードする方法がいくつかあります。必ずこのStruts 2 file upload documentationを確認してください。

4. Demo

Struts 2 file upload example

10kbを超えるファイルをアップロードした場合、またはテキストファイルではない場合、エラーメッセージが表示されます。

Struts 2 file upload error page

「XWORK-LICENSE.txt」という名前のテキストファイルをアップロードします。ファイルサイズは5kbです。

Struts 2 file upload example

アップロードされたファイルは、upload376584a7_129811223798000_00000010.tmpという長いランダムなファイル名を持つ一時ファイルとして扱われます。 この一時ファイルを別の場所にコピーしてください。 FileUtils documentationを読み取って、ファイルを簡単にコピーします。