www.dextsolution.com
DEXTUPLOAD
NJ
menu toggle リファレンス > devpia > dextuploadnj > support > common > FileUpload

devpia.dextuploadnj.support.common
Class FileUpload

サポートされる最小バージョン
1.0.0
最小サポート環境
JRE 1.6
説明

FileUploadクラスは、マルチパート(multipart/form-data)のデータ要求を処理する。

FileUploadクラスは、JSP/Servlet環境でファイルのアップロードを処理する目的で使用される。

Environment env = new Environment();
env.setCharEncoding("UTF-8");
env.setTempRepository(System.getProperty("java.io.tmpdir"));
env.setDefaultRepository("/file/attach");
env.setAutoMakingDirectory(true);
env.setMaxFileSize(1024 * 1024 * 20);
env.setMaxTotalSize(1024 * 1024 * 50);
env.setWhiteExtensions("jpg,gif,png,doc,xls,ppt,docx,xlsx,pptx,pdf,txt,zip,hwp");
env.setLicenseFilePath("/home/user/license/dextuploadnj.config");
FileUpload dextnj = null;
try {
  dextnj = new FileUpload(request, env);
  ...
  dextnj.prepare();
  ...
} catch (...) {
  ...
} finally {
  if (dextnj != null) dextnj.close();
}

FileUploadオブジェクトを作成すると、必ずprepareメソッドを呼び出して、アップロード要求を処理しなければならない。 prepareメソッドの呼び出しが完了すると、クライアントから送信されたデータから、一時ファイルを作成する作業が完了する。

コンストラクタ
  • FileUploadクラスのオブジェクトを生成する。
  • 形式

    public FileUpload(HttpServletRequest request)
    public FileUpload(HttpServletRequest request, Environment environment)
  • パラメータ

    名前 形式 説明
    request javax.servlet.http.HttpServletRequest HttpServletRequestオブジェクト
    environment devpia.dextuploadnj.Environment Environmentオブジェクト
メソッド

getEnvironment

  • アップロード設定情報を持つEnvironmentオブジェクトを返します。
  • 形式

    public Environment getEnvironment()
  • リターン

    Environmentオブジェクト

setEnvironment

  • アップロード設定情報を持つEnvironmentオブジェクトを設定する。
  • 形式

    public void setEnvironment(Environment environment)
  • パラメータ

    名前 形式 説明
    environment devpia.dextuploadnj.Environment Environmentオブジェクト
  • 使い方

    Environment env = new Environment();
    env.setCharEncoding("UTF-8");
    ...
    env.setLicenseFilePath("ライセンスファイルの場所");
    FileUpload dextnj = new FileUpload(request); 
    setEnvironment(env);

isRemovingWhenClosing

  • FileUploadオブジェクトのcloseメソッドが呼び出されると、一時ファイルを削除するかどうかを返します。

  • 形式

    public boolean isRemovingWhenClosing()
  • リターン

    デフォルト値はtrueである。

setRemovingWhenClosing

  • FileUploadオブジェクトのcloseメソッドが呼び出されると、一時ファイルを削除するかどうかを設定する。

  • 形式

    public void setRemovingWhenClosing(boolean removingWhenClosing)
  • パラメータ

    名前 形式 説明
    removingWhenClosing boolean 一時ファイルを削除するには、true、なければfalse
  • 使い方

    FileUpload dextnj = null;
    try {
      dextnj = new FileUpload(request, env);
      dextnj.setRemovingWhenClosing(false);
      ...
      dextnj.prepare();
      ...
    } catch (...) {
      ...
    } finally {
      // close呼び出し時点で一時ファイルを削除しない。
      if (dextnj != null) dextnj.close();
    }

close

  • すべてのリソースを削除する。

  • 形式

    public void close()

flush

  • 要求データをすべて消費する。

    既にprepareメソッドが呼び出された後は、flushメソッドを呼び出すと、IllegalStateException例外が発生する。

  • 形式

    public void flush()
  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    dextnj.flush();

prepare

  • マルチパート形式のリクエストデータから文字列データ項目を分離し、アップロードされたファイルを一時ディレクトリに保存する。

    ファイルのアップロードサービスを実行するために、必ず呼び出す必要があるメソッドである。

  • 形式

    public void prepare()
  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    dextnj.prepare();

getMultipartCollection

  • 文字列、ファイルのフィールドを持っているMultipartCollectionオブジェクトを返します。
  • 形式

    public MultipartCollection getMultipartCollection()
  • リターン

    devpia.dextuploadnj.MultipartCollectionオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    MultipartCollection dextMulti = dextnj.getMultipartCollection();

getFormItemCount

  • 文字列フィールドの数を返します。
  • 形式

    public int getFormItemCount()
  • リターン

    文字列フィールドの数

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    int formCount = dextnj.getFormItemCount();

getFileItemCount

  • ファイルのフィールドの数を返します。
  • 形式

    public int getFileItemCount()
  • リターン

    ファイルのフィールド数

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    int fileCount = dextnj.getFileItemCount();

getFormItemNames

  • すべての文字列フィールド名前をjava.util.Iteratorオブジェクトを返します。
  • 形式

    public Iterator<String> getFormItemNames()
  • リターン

    java.util.Iteratorオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    Iterator<String> formNames = dextnj.getFormItemNames();

getFileItemNames

  • すべてのファイルのフィールド名前をjava.util.Iteratorオブジェクトを返します。
  • 形式

    public Iterator<String> getFileItemNames()
  • リターン

    java.util.Iteratorオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    Iterator<String> formNames = dextnj.getFileItemNames();

getFormItem

  • 指定された順序や名前に対応するFormItemオブジェクトを返します。

    同じ名前のフィールドが複数存在する場合の最初のフィールドを返します。

  • 形式

    public FormItem getFormItem(int index)
    public FormItem getFormItem(String name)
  • パラメータ

    名前 形式 説明
    index int 順序の値
    name java.lang.String 名前
  • リターン

    FormItemオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    FormItem formitem = dextnj.getFormItem(index);

getFormItemValue

  • 指定された順序や名前に対応する文字列フィールドの値を返します。

  • 形式

    public String getFormItemValue(int index)
    public String getFormItemValue(String name)
  • パラメータ

    名前 形式 説明
    index int フォーム項目の順序
    name java.lang.String フォーム名前
  • リターン

    文字列フィールドの値

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    String strValue = dextnj.getFormItemValue(index);
    //または
    String strValue = dextnj.getFormItemValue("폼名前");

getFormItems

  • すべてまたは指定された名前に対応するフィールドのリスト(java.util.List<FormItem>)を返します。

  • 形式

    public List<FormItem> getFormItems()
    public List<FormItem> getFormItems(String name)
  • パラメータ

    名前 形式 説明
    name java.lang.String 名前
  • リターン

    java.util.List<FormItem>オブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    List<FormItem> formitems = dextnj.getFormItems(); 
    //または
    List<FormItem> formitems = dextnj.getFormItems("폼名前");

getFileItem

  • 指定された順序や名前に対応するFileItemオブジェクトを返します。

    同じ名前のフィールドが複数存在する場合の最初のフィールドを返します。

  • 形式

    public FileItem getFileItem(int index)
    public FileItem getFileItem(String name)
    // バージョン2.5.0からサポート
    public FileItem getFileItem()
  • パラメータ

    名前 形式 説明
    index int 順序の値
    name java.lang.String 名前
  • リターン

    FileItemオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    FileItem fileitem = dextnj.getFileItem(index);

getFileItems

  • すべてまたは指定された名前に対応するファイルのリスト(java.util.List<FileItem>)を返します。

  • 形式

    public List<FileItem> getFileItems()
    public List<FileItem> getFileItems(String name)
  • パラメータ

    名前 形式 説明
    name java.lang.String 名前
  • リターン

    java.util.List<FileItem>

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    List<FileItem> fileitem = dextnj.getFileItems();
    //또는
    List<FileItem> fileitem = dextnj.getFileItem("ファイル名前");

saveAll

  • すべての一時ファイルを保存(move/copy)である。
  • 形式

    public void saveAll(boolean overwrite)
    public void saveAll(boolean overwrite, boolean copy)
    public void saveAll(String targetDirectoryPath)
    public void saveAll(String targetDirectoryPath, boolean overwrite)
    public void saveAll(String targetDirectoryPath, boolean overwrite, boolean copy)
    public void saveAll(BulkSaveOption option)
  • パラメータ

    名前 形式 説明
    targetDirectoryPath java.lang.String ファイルを保存する場所
    overwrite boolean

    目的地に同じ名前のファイルがあるとき、パラメータの値がtrueの場合上書きfalseの場合、重複していないファイル名で保存する。

    DEXTUploadNJは、ファイルを保存するときは、同じファイル名を持つファイルがある場合は、自動的にsuffixの値がつく。 しかし、Webのように、同時に多くの要求を処理するシステムの場合、suffix処理にもかかわらず、同じファイル名が生成される可能性が高い。 したがって、overwrite引数の値がデフォルト値もしくはfalseの場合でも、多くの場合、ファイルの書き込みに失敗したエラーが発生する。 このような状況を最大限に回避するには、元のファイル名のまま保存しないで、可能な限り重複が発生していない名前に指定しなければならない。

    copy boolean

    パラメータの値がtrueの場合、ファイルの保存後に、一時ファイルを削除しない。 falseの場合は保存完了後、すぐに一時ファイルを削除する。

    option BulkSaveOption

    (バージョン2.7.0からサポート)一時ファイルの保存に必要なオプションを設定するBulkSaveOptionオブジェクト

  • 使い方

    FileUpload dextnj = new FileUpload(request, env); 
    ...
    // 最も基本的な全体を保存する方法
    dextnj.saveAll();
    // 方法2
    dextnj.saveAll("ディレクトリのパス");
    // 方法3
    dextnj.saveAll("ディレクトリのパス", true);
    // 方法4
    dextnj.saveAll("ディレクトリのパス", true, true);
    // 方法5
    BulkSaveOption option = new BulkSaveOption();
    option.setTargetDirectoryPath("/home/user/others/");
    option.setOverwrite(true);
    option.setCopy(true);
    dextnj.saveAll(option);