efw ファイルアップロードサンプル

概要

本サンプルは、efwフレームワークにおけるファイルアップロード機能の実装を展示し、特にアップロードファイルタイプの制限(.xlsx形式のみ許可)方法を実演します。efwフレームワークは、ファイルアップロード、保存、管理操作を処理する簡潔なAPIを提供し、ファイルタイプ検証をサポートします。

コアファイル

  1. メインページ: helloUpload.jsp
  2. 単一ファイルアップロード処理: helloUpload_submit1.js
  3. 複数ファイルアップロード処理: helloUpload_submitM.js

機能実装

1. ファイルタイプ制限

フロントエンド制限

<input type="file" id="file1" accept=".xlsx">

バックエンド検証

helloUpload_submit1.paramsFormat = {
    "#file1": "accept:xlsx;display-name:単独ファイル選択枠"
};

2. 単一ファイルアップロードフロー

  1. ユーザーがファイルを選択
    • <input type="file" id="file1" accept=".xlsx">で単一の.xlsxファイルを選択
  2. アップロードイベントをトリガー
    • 「実行」ボタンをクリックしてEfw('helloUpload_submit1')を呼び出し
  3. サーバー側処理
   // アップロードディレクトリをクリーンアップして作成
   file.remove("upload");
   file.makeDir("upload");
   
   // ファイル名を解析
   var filePath = params["#file1"];
   var filename = filePath.split(/[\\\/]/g).pop();
   
   // アップロードファイルを保存
   file.saveSingleUploadFile("upload/" + filename);
  1. 結果を返す
    • アップロードディレクトリのファイルリストを取得
    • #divResultに結果を表示

3. 複数ファイルアップロードフロー

  1. ユーザーが複数ファイルを選択
    • <input type="file" id="fileM" multiple accept=".xlsx">で複数の.xlsxファイルを選択
  2. アップロードイベントをトリガー
    • 「実行」ボタンをクリックしてEfw('helloUpload_submitM')を呼び出し
  3. サーバー側処理
   // アップロードディレクトリをクリーンアップして作成
   file.remove("upload");
   file.makeDir("upload");
   
   // 全てのアップロードファイルを保存
   file.saveUploadFiles("upload");
  1. 結果を返す
    • アップロードディレクトリのファイルリストを取得
    • #divResultに結果を表示

技術的特長

1. ファイルタイプ検証

フロントエンド検証

バックエンド検証

2. ファイル操作API

ディレクトリ管理

ファイル保存

ファイルリスト

3. パラメータ処理

4. 結果返却

使用説明

1. 単一ファイルアップロード

  1. 「ファイル選択」ボタンをクリックして単一の.xlsxファイルを選択
  2. 「実行」ボタンをクリックしてファイルをアップロード
  3. アップロード結果がページ下部に表示

2. 複数ファイルアップロード

  1. 「ファイル選択」ボタンをクリックして複数の.xlsxファイルを選択(CtrlまたはShiftキーを押しながら複数選択)
  2. 「実行」ボタンをクリックして全てのファイルをアップロード
  3. アップロード結果がページ下部に表示

3. ファイル保存

セキュリティ注意事項

1. ファイルタイプ検証

2. ファイルサイズ制限

3. ファイル名処理

4. アクセス制御

本サンプルは、efwフレームワークが如何に安全なファイルアップロード機能を実現するかを展示し、フロントエンドとバックエンドの二重検証により特定タイプのファイルのみ受信を確保すると共に、完全なファイル管理機能を提供します。