public interface MultipartFile extends InputStreamSource
ファイルの内容は、メモリに保存されるか、一時的にディスクに保存されます。どちらの場合でも、必要に応じて、ユーザーはファイルの内容をセッションレベルまたは永続ストアにコピーする責任があります。一時ストレージは、リクエスト処理の終了時にクリアされます。
MultipartHttpServletRequest
, MultipartResolver
修飾子と型 | メソッドと説明 |
---|---|
byte[] | getBytes() ファイルの内容をバイトの配列として返します。 |
StringSE | getContentType() ファイルのコンテンツ型を返します。 |
InputStreamSE | getInputStream() ファイルの内容を読み取る InputStream を返します。 |
StringSE | getName() マルチパート形式でパラメーターの名前を返します。 |
StringSE | getOriginalFilename() クライアントのファイルシステムにある元のファイル名を返します。 |
default Resource | getResource() この MultipartFile のリソース表現を返します。 |
long | getSize() ファイルのサイズをバイト単位で返します。 |
boolean | isEmpty() アップロードされたファイルが空かどうか、つまり、マルチパート形式でファイルが選択されていないか、選択されたファイルにコンテンツがないかを返します。 |
void | transferTo(FileSE dest) 受信したファイルを指定された宛先ファイルに転送します。 |
default void | transferTo(PathSE dest) 受信したファイルを指定された宛先ファイルに転送します。 |
StringSE getName()
null
または空ではない)@Nullable StringSE getOriginalFilename()
これには、使用するブラウザーによってはパス情報が含まれる場合がありますが、通常は Opera 以外には含まれません。
注意 : このファイル名はクライアントから提供されたものであり、盲目的に使用しないでください。ファイル名には、ディレクトリ部分を使用しないだけでなく、".." などの悪意のある文字を含めることもできます。このファイル名を直接使用しないことをお勧めします。できれば、一意のものを生成し、必要に応じて、参照用にこれをどこかに保存してください。
null
FileItem.getName()
, CommonsMultipartFile.setPreserveFilename(boolean)
, RFC 7578、セクション 4.2 , 無制限のファイルアップロード@Nullable StringSE getContentType()
null
(または、マルチパート形式でファイルが選択されていません)boolean isEmpty()
long getSize()
byte[] getBytes() throws IOExceptionSE
IOExceptionSE
- アクセスエラーの場合 (一時ストアが失敗した場合)InputStreamSE getInputStream() throws IOExceptionSE
ユーザーは、返されたストリームを閉じる責任があります。
InputStreamSource
の getInputStream
IOExceptionSE
- アクセスエラーの場合 (一時ストアが失敗した場合)Resource.isReadable()
default Resource getResource()
RestTemplate
または WebClient
への入力として使用して、コンテンツの長さとファイル名を InputStream とともに公開できます。void transferTo(FileSE dest) throws IOExceptionSE, IllegalStateExceptionSE
これにより、ファイルシステム内のファイルを移動したり、ファイルシステム内のファイルをコピーしたり、メモリ内のコンテンツを宛先ファイルに保存したりできます。宛先ファイルがすでに存在する場合、最初に削除されます。
ターゲットファイルがファイルシステム内で移動されている場合、この操作は後で再度呼び出すことはできません。ストレージメカニズムを使用するには、このメソッドを 1 回だけ呼び出します。
注意 : 基礎となるプロバイダーに応じて、一時ストレージは、ここで指定された相対的な宛先のベースディレクトリなど、コンテナーに依存する場合があります(例: Servlet 3.0 マルチパート処理)。絶対的な宛先の場合、一時コピーがすでに存在していても、ターゲットファイルの名前が変更されたり、一時的な場所から移動されたり、新しくコピーされたりすることがあります。
dest
- 宛先ファイル (通常は絶対)IOExceptionSE
- 読み取りまたは書き込みエラーの場合 IllegalStateExceptionSE
- ファイルがファイルシステム内ですでに移動されており、別の転送に使用できない場合 FileItem.write(File)
, Part.write(String)
EEdefault void transferTo(PathSE dest) throws IOExceptionSE, IllegalStateExceptionSE
デフォルトの実装では、単にファイル入力ストリームをコピーします。
IOExceptionSE
IllegalStateExceptionSE
getInputStream()
, transferTo(File)