LaBee Framework
ドキュメントトップに戻る
ファイルアップロード
LaBeeFrameworkは簡単にWeb画面からファイルアップロードし、ビジネスロジックで取得する事が出来ます。ほとんど特別な処理は不要です。
サンプル例ではWeb画面(JSP)からファイル選択後にサブミットし、ビジネスロジックで取得したファイル内容をビーンに詰めて
JSPにレスポンスを返しています。
JSP実装例
    
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ page session="false"%>
<%@ taglib prefix="LaBee"  uri="/WEB-INF/lib/LaBeeFramework.jar"%>
<jsp:useBean id="bean" class="sample.bean.web.SampleBean" scope="request" />

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <LaBee:header requestScope="${requestScope}"/>
</head>
<body>
    <form name="mainForm" method="post" action="ctrl">

        <input type="file" name="file">
        <br>    
        
        <button type="button"
            onClick="<LaBee:postMultiPartSubmit
            target="web.Sample"
            execute="upload" 
            formName="mainForm"/>">
            ファイル送信
         </button>          
        
         <div>
            ${bean.uploadFileName}
         </div>
         <div>
            ${bean.uploadText}
         </div>
    </form>
</body>
</html>         

  • 16行目 ファイル選択タグを設置します。
  • 20行目 ボタン押下時にLaBee:postMultiPartSubmitカスタムタグでマルチパート送信します。
Bean実装例
    
package sample.bean.web;

import java.io.Serializable;

import com.bee_wkspace.labee_fw.app.base.AppBaseBean;

/**
 * ファイルアップロードサンプルビーンクラス
 */
public class SampleBean extends AppBaseBean implements Serializable {

    /** アップロードファイルテキスト */
    private String uploadText;

    /** アップロードファイル名 */
    private String uploadFileName;

    /**
     * コンストラクタ。
     */
    public SampleBean() {
        super();
    }

    /**
     * @return uploadText
     */
    public String getUploadText() {
        return uploadText;
    }

    /**
     * @return uploadFileName
     */
    public String getUploadFileName() {
        return uploadFileName;
    }

    /**
     * @param uploadText セットする uploadText
     */
    public void setUploadText(String uploadText) {
        this.uploadText = uploadText;
    }

    /**
     * @param uploadFileName セットする uploadFileName
     */
    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

}       

Blogic実装例
    
package sample.blogic.web;

import sample.bean.web.SampleBean;

import com.bee_wkspace.labee_fw.app.base.AppBaseBlogic;
import com.bee_wkspace.labee_fw.core.annotation.FwBlogic;
import com.bee_wkspace.labee_fw.core.annotation.FwExeMethod;
import com.bee_wkspace.labee_fw.core.context.ResponseContext;
import com.bee_wkspace.labee_fw.exception.FwException;

/**
 * ファイルアップロードサンプルビジネスロジック
 */
@FwBlogic(beanReuse = false)
public class SampleBlogic extends AppBaseBlogic<SampleBean> {
    /**
     * コンストラクタ。
     */
    public SampleBlogic() {
        super();
    }

    /**
     * ファイルアップロードイベント処理。
     */
    @FwExeMethod
    public ResponseContext upload() throws FwException {
        try {
            // 受信したファイル内容をビーンに格納
            bean.setUploadFileName(super.uploadFileContext.getFileName());
            bean.setUploadText(super.uploadFileContext.getUploadString());
            
        } catch (Exception e) {
            throw new FwException(e);
        }
        return responseContext;
    }
}

  • 31行目~32行目 アップロードされたファイル情報をビーンに格納しています。
    アップロードされたファイル情報は親クラスて定義しているcom.bee_wkspace.labee_fw.core.context.FileUploadContextクラス型の uploadFileContextインスタンスに自動的に格納されますので実装者は何もせずにアップロードファイル情報を取得出来ます。

    FileUploadContexクラス概要
    メソッド名 概要
    String getFileName() アップロードしたファイルのファイル名を返します。
    byte[] getUploadFileByte() アップロードしたファイルのバイナリバイト配列を返します。
    String getUploadString() アップロードしたファイルを文字列に変換して返します。
    int getFileSize() アップロードしたファイルのファイルサイズを返します。
ドキュメントトップに戻る
Copyright ARTS Laboratory. All rights reserved.