www.dextsolution.com
DEXTUPLOAD
JK
menu toggleリファレンス > dextuploadjk > engine > FileItem

dextuploadjk.engine
Interface FileItem

最小サポートバージョン
1.0.0
最小サポート環境
Java 17, Jakarta EE 9+
説明

FileItemは、FieldItemインターフェースを継承したインターフェースで、マルチパートデータ内のファイル要素に関する情報を扱います。

# Servlet/JSP environment                    
// FileUploadオブジェクトのgetFileItemメソッドを使用してFileItemオブジェクトを取得します。

// 最初の FileItem オブジェクトを返す
FileItem itemFirst = fileUpload.getFileItem(0);

// "name"フィールド名を持つ最初のFileItemオブジェクトを返します
FileItem itemName = fileUpload.getFileItem("name");

// "attachements" という名前のすべてのFileItemオブジェクトを返します。
List<FileItem> attachements = fileUpload.getFileItems("attachements");

// すべてのFileItemオブジェクトを返します。
List<FileItem> items = fileUpload.getFileItems();
# Spring 環境
// MultipartFileオブジェクトをFileItemにキャストして取得します。
FileItem item = (FileItem) multipartFile;
メソッド

getFieldName

FieldItemインタフェースのgetFieldNameメソッドを参照してください。

getItemType

FieldItemインタフェースのgetItemTypeメソッドを参照してください。

isEmpty

  • 空のファイルであるかどうかを返します。

    空のファイルとは、フィールドは存在するが、実際のファイル情報がない場合である。長さ0のファイルの場合にはfalseがリターンになる。

  • 形式

    boolean isEmpty()
  • リターン

    空のファイルであればtrue、なければfalse

getFilename

  • ファイル名前を返します。

  • 形式

    String getFilename()
  • リターン

    ファイル名前(親パスを含んでいない。)

getFilenameWithoutExtension

  • 拡張子が削除されたファイル名前を返します。

  • 形式

    String getFilenameWithoutExtension()
  • リターン

    拡張子が削除されたファイル名前(親パスを含んでいない。)

getContentType

  • ファイル形式(MIME-TYPE)を返します。

    ファイル形式は、データ転送時にクライアントが決定した事項なので、ファイルの種類を区別する指標として使用することは難しい。

  • 形式

    String getContentType()
  • リターン

    ファイル形式(MIME-TYPE)、ex)image/png

getTempFilePath

  • 一時ファイルのパスを返します。

  • 形式

    String getTempFilePath()
  • リターン

    一時ファイルのパ

getTempFile

  • 一時ファイルオブジェクトを返します。

  • 形式

    File getTempFile()
  • リターン

    一時ファイルを表すjava.io.Fileオブジェクト

getFileSize

  • ファイルのサイズを返します。

  • 形式

    long getFileSize()
  • リターン

    ファイルサイズ、デフォルトは-1である。

getOriginalFileSize

  • ファイルの元のサイズを返します。

    FilterAction 設定がFlushingにされた場合には、フィルタリングされたファイルのサイズは0 byteとなる。 フィルタリングされたファイルのサイズを知りたいときgetOriginalFileSizeメソッドを使用すれば、元のサイズを知ることができる。

  • 形式

    long getOriginalFileSize()
  • リターン

    ファイルサイズ、デフォルトは-1です。

isEligibleFile

  • isEmptyリターン値がfalseであり、getFileSize値が0よりも大きい場合にのみ、trueがリターンになる。

  • 形式

    boolean isEligibleFile()
  • リターン

    true, false

getExtension

  • ファイルの拡張子を返します。

  • 形式

    String getExtension()
  • リターン

    '.'を含むファイルの拡張子名、拡張子名がない場合は、空の文字列がリターンになる。

getLastSavedFilePath

  • save、saveAsのようなメソッドを使用してファイルを保存したとき、保存されたファイルのフルパスを返します。

  • 形式

    String getLastSavedFilePath()
  • リターン

    保存されたファイルのフルパス

getLastRelativeSavedFilePath (バージョン1.1.0からサポート)

  • save や saveAs などのメソッドを呼び出した後に、保存されたファイルへの相対パスを返します。

  • 形式

    String getLastRelativeSavedFilePath()
  • リターン

    デフォルトの保存パスのサブパスを返します。デフォルトの保存パスのサブパスでない場合は、ファイルへのフルパスを返します。

getLastSavedFilename

  • save、saveAsのようなメソッドを使用してファイルを保存したとき、保存されたファイルの名前を返します。

  • 形式

    String getLastSavedFilename()
  • リターン

    保存されたファイルの名前

deleteTempFile

  • 一時ファイルを削除する。

    このメソッドを呼び出すと、一時ファイルが削除され、一時ファイルの情報も一緒に削除される。 一時ファイルがなくても、エラーが発生しない。

  • 形式

    void deleteTempFile()

saveAs

  • 一時ファイルを先に保存する(move、copy)する。

    元のファイル名とは異なるファイル名に変更して保存するときに使用します。

    saveAsの代わりにFileSaveOptionパラメータを持つsaveメソッドを使用することをお勧めします。

  • 形式

    String saveAs(String targetFilename)
    String saveAs(String targetFilename, boolean overwrite)
    String saveAs(String targetFilename, boolean overwrite, boolean copy)
    String saveAs(String targetDirectoryPath, String targetFilename)
    String saveAs(String targetDirectoryPath, String targetFilename, boolean overwrite)
    String saveAs(String targetDirectoryPath, String targetFilename, boolean overwrite, boolean copy)
  • パラメータ

    名前 形式 説明
    targetDirectoryPath java.lang.String ファイルを保存するディレクトリへのパス
    targetFilename java.lang.String 保存するファイル名
    overwrite boolean

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

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

    copy boolean

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

  • リターン

    保存されたファイルのフルパス

  • 使い方

    // 一時ファイルのパスが「/home/user/temp/temp_name.txt」で、デフォルトの保存ディレクトリが「/home/user/files」なら、一時ファイルを「/home/user/files/uploaded_file.txt」のパスに保存する。
    item.saveAs("uploaded_file.txt");
    
    //  一時ファイルのパスが「/home/user/temp/temp_name.txt」で、デフォルトの保存ディレクトリが「/home/user/files」のとき、ディレクトリのパスを変更して、一時ファイルを「/home/user/others/uploaded_file.txt」パスに保存する。 
    item.saveAs("/home/user/others/", "uploaded_file.txt");

save

  • 一時ファイルを先に保存する(move、copy)する。

    元のファイル名と同じファイル名で保存するときに使用します。

    複数のオーバーロードメソッドの代わりにFileSaveOptionパラメータを持つメソッドを使用することをお勧めします。

  • 形式

    String save()
    String save(boolean overwrite)
    String save(boolean overwrite, boolean copy)
    String save(String targetDirectoryPath)
    String save(String targetDirectoryPath, boolean overwrite)
    String save(String targetDirectoryPath, boolean overwrite, boolean copy)
    String save(FileSaveOption option)
  • パラメータ

    名前 形式 説明
    targetDirectoryPath java.lang.String ファイルを保存するディレクトリへのパス
    overwrite boolean

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

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

    copy boolean

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

    option FileSaveOption

    一時ファイルを保存するときに必要なオプションを設定するオブジェクト

  • リターン

    保存されたファイルのフルパス

  • 使い方

    // 一時ファイルのパスが「/home/user/temp/temp_name.txt」で、デフォルトの保存ディレクトリが「/home/user/files」なら、一時ファイルを「/home/user/files/temp_name.txt」のパスに保存する。
    item.save();
    
    // 一時ファイルのパスが「/home/user/temp/temp_name.txt」で、デフォルトの保存ディレクトリが「/home/user/files」のとき、ディレクトリのパスを変更して、一時ファイルを「/home/user/others/temp_name.txt」パスに保存する。
    item.save("/home/user/others/");
    
    // item.save("/home/user/others/")と同じ
    FileSaveOption option = new FileSaveOption();
    option.setTargetDirectoryPath("/home/user/others/");
    item.save(option);
    

getFileCopyOption

  • ファイルをコピーする方法を返します。

  • 形式

    FileCopyOption getFileCopyOption()
  • リターン

    デフォルトFileCopyOption.Channel

setFileCopyOption

  • ファイルをコピーする方法を設定する。

    コピーの方法は、FileCopyOption 列挙型を参照すること。

    Environment クラスのsetFileCopyOptionメソッドはファイルをコピーするすべての操作に影響しますが、FileItemインタフェースのsetFileCopyOptionメソッドは現在のファイル操作にのみ影響します。

  • 形式

    void setFileCopyOption(FileCopyOption fileCopyOption)
  • パラメータ

    名前 形式 説明
    fileCopyOption dextuplodjk.engine.FileCopyOption ファイルコピー方法を示す列挙値である。
  • 使い方

    // ストリームのコピー方式に設定する。
    item.setFileCopyOption(FileCopyOption.Stream);

get

  • ファイルデータを返します。

    メモリが不足している場合は、例外が発生することができ、最大2GBまでしかサポートします。

  • 形式

    byte[] get(boolean caching)
  • パラメータ

    名前 形式 説明
    caching boolean

    パラメータの値がtrueの場合、ファイルからデータを読んだ後、itemオブジェクトの内部にファイルデータをキャッシュする。

    もしキャッシュされたデータがある場合は、ファイルを読まずにメモリにキャッシュされたデータをコピーして返します。

  • リターン

    ファイルデータを表すバイト配列オブジェクト

  • 使い方

    // ファイルのデータをバイト配列にリターンで、データを内部的にキャッシュするようにす
    byte[] data = item.get(true);

isCached

  • キャッシュされたファイルのデータがあるかどうかを返します。

  • 形式

    boolean isCached()
  • リターン

    キャッシュされたデータがある場合はtrue、なければfalseである。

removeCache

  • キャッシュされたファイルのデータを削除する。

  • 形式

    void removeCache()

getEnvironment

  • ファイルアップロード構成値を含むEnvironmentオブジェクトを返します。

  • 形式

    Environment getEnvironment()
  • リターン

    Environment オブジェクト

isFiltered

  • ファイルがフィルタリングされた宛先かどうかを返します。

    FilterAction設定がFlushingの場合にのみ利用できます。

  • 形式

    boolean isFiltered()
  • リターン

    フィルタリングされた場合はtrue、またはfalse