クラス MultipartRequest
java.lang.Object
org.opengion.hayabusa.servlet.MultipartRequest
ファイルをサーバーにアップロードする場合に使用されるマルチパート処理サーブレットです。
通常のファイルアップロード時の、form で使用する、enctype="multipart/form-data"
を指定した場合の、他のリクエスト情報も、取り出すことが可能です。
ファイルをアップロード後に、指定のファイル名に変更する機能があります。
file 登録ダイアログで指定した name に、"_NEW" という名称を付けたリクエスト値を
ファイルのアップロードと同時に送信することで、この名前にファイルを付け替えます。
また、アップロード後のファイル名は、name 指定の名称で、取り出せます。
クライアントから登録したオリジナルのファイル名は、name に、"_ORG" という名称
で取り出すことが可能です。
maxPostSize : 最大転送サイズ(Byte)を指定します。 0,またはマイナスで無制限です。
useBackup : ファイルアップロード時に、すでに同名のファイルが存在した場合に、
バックアップ処理(renameTo)するかどうか[true/false]を指定します(初期値:false)
ファイルアップロード時に、アップロード先に、同名のファイルが存在した場合は、既存機能は、そのまま
置き換えていましたが、簡易バージョンアップ機能として、useBackup="true" を指定すると、既存のファイルを
リネームして、バックアップファイルを作成します。
バックアップファイルは、アップロードフォルダを基準として、_backup/ファイル名.拡張子_処理時刻のlong値.拡張子 になります。
オリジナルのファイル名(拡張子付)を残したまま、"_処理時刻のlong値" を追加し、さらに、オリジナルの拡張子を追加します。
バックアップファイルの形式は指定できません。
5.7.1.2 (2013/12/20) zip 対応
filename 属性に、".zip" の拡張子のファイル名を指定した場合は、アップロードされた一連のファイルを
ZIP圧縮します。これは、アップロード後の処理になります。
ZIP圧縮のオリジナルファイルは、そのまま残ります。
なお、ZIPファイルは、useBackup属性を true に設定しても、無関係に、上書きされます。
8.0.1.0 (2021/10/29) storageType → storage 、bucketName → bucket に変更
× storage (初期値:システムリソースのCLOUD_TARGET) → 廃止
× bucket (初期値:システムリソースのCLOUD_BUCKET) → 廃止
useLocal (初期値:false)
- 変更履歴:
- 5.10.9.0 (2019/03/01) oota クラウドストレージ対応を追加。(Fileクラスを拡張)
- 機能分類
- その他機能
- 導入されたバージョン:
- JDK5.0,
-
コンストラクタの概要
コンストラクタコンストラクタ説明MultipartRequest
(HttpServletRequest request, String saveDirectory, int maxPostSize, String encoding, String inputFilename, String useBackup, String fileURL, boolean useLocal) MultipartRequest オブジェクトを構築します。 引数として、ファイルアップロード時の保存フォルダ、最大サイズ、エンコード、 新しいファイル名などを指定できます。新しいファイル名は、アップロードされる ファイルが一つだけの場合に使用できます。複数のファイルを同時に変更したい 場合は、アップロードルールにのっとり、リクエストパラメータで指定してください。 HTML5 では、ファイルアップロード時に、multiple 属性(inputタグのtype="file")を 付ける事で、ファイルを複数選択できます。 その場合は、inputのname属性は、一つなので、_NEW による名前の書き換えはできません。 -
メソッドの概要
修飾子とタイプメソッド説明int[]
getIntParameters
(String name) 指定の名前のリクエストパラメータの値を配列(int)型式で取得します。getParameter
(String name) 指定の名前のリクエストパラメータの値を取得します。 複数存在する場合は、一番最後の値を返します。String[]
リクエストパラメータの名前配列を取得します。String[]
getParameters
(String name) 指定の名前のリクエストパラメータの値を配列型式で取得します。ファイルアップロードされたファイル群のファイル配列を取得します。
-
コンストラクタの詳細
-
MultipartRequest
public MultipartRequest(HttpServletRequest request, String saveDirectory, int maxPostSize, String encoding, String inputFilename, String useBackup, String fileURL, boolean useLocal) throws IOException MultipartRequest オブジェクトを構築します。 引数として、ファイルアップロード時の保存フォルダ、最大サイズ、エンコード、 新しいファイル名などを指定できます。新しいファイル名は、アップロードされる ファイルが一つだけの場合に使用できます。複数のファイルを同時に変更したい 場合は、アップロードルールにのっとり、リクエストパラメータで指定してください。 HTML5 では、ファイルアップロード時に、multiple 属性(inputタグのtype="file")を 付ける事で、ファイルを複数選択できます。 その場合は、inputのname属性は、一つなので、_NEW による名前の書き換えはできません。- パラメータ:
request
- HttpServletRequestオブジェクトsaveDirectory
- ファイルアップロードがあった場合の保存フォルダ名maxPostSize
- ファイルアップロード時の最大ファイルサイズ(Byte)0,またはマイナスで無制限encoding
- ファイルのエンコードinputFilename
- アップロードされたファイルの新しい名前useBackup
- ファイルアップロード時に、バックアップ処理するかどうか[true/false/rename]を指定fileURL
- クラウドストレージ用のURL // * @param storage クラウドプラグイン名(ローカルファイルを強制する場合は、LOCAL を指定する) // * @param bucket バケット名(ローカルファイルを強制する場合は、LOCAL を指定する)useLocal
- 強制的にローカルファイルを使用する場合、true にセットします。- 例外:
IOException
- 入出力エラーが発生したときIllegalArgumentException
- セーブディレクトリ に関係するエラー- 変更履歴:
- 3.8.1.3A (2006/01/30) 新ファイル名にオリジナルファイル名の拡張子をセットします, 4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。, 5.5.2.6 (2012/05/25) findbugs対応。staticフィールドへの書き込みに、AtomicInteger を利用します。, 5.6.5.3 (2013/06/28) useBackup引数追加, 5.7.1.1 (2013/12/13) HTML5 ファイルアップロードの複数選択(multiple)対応, 5.7.1.2 (2013/12/20) zip 対応, 5.7.4.3 (2014/03/28) zip 対応復活。inputFilename のリクエスト変数処理追加, 6.0.2.4 (2014/10/17) useBackup 修正。_PFX(接頭辞) , _SFX(接尾辞) 機能を追加。ファイル名にフォルダ指定可, 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。, 5.9.25.0 (2017/10/06) クラウドストレージ利用処理追加, 6.9.0.1 (2018/02/05) ファイルをセーブするディレクトリは、必要な場合のみ、作成します。, 5.10.9.0 (2019/03/01) クラウドストレージ対応を追加。, 8.0.0.2 (2021/10/15) ローカルファイルとクラウドファイル間の移動, 8.0.1.0 (2021/10/29) useLocal 属性を追加。storageType , bucketName 削除
-
-
メソッドの詳細
-
getParameterNames
リクエストパラメータの名前配列を取得します。- 戻り値:
- リクエストパラメータの名前配列
- このメソッドは、nullを返しません
-
getUploadedFile
ファイルアップロードされたファイル群のファイル配列を取得します。- 戻り値:
- アップロードされたファイル群
- 変更履歴:
- 5.7.1.1 (2013/12/13) HTML5 ファイルアップロードの複数選択(multiple)対応
- このメソッドは、nullを返しません
-
getParameter
指定の名前のリクエストパラメータの値を取得します。 複数存在する場合は、一番最後の値を返します。- パラメータ:
name
- リクエストパラメータ名- 戻り値:
- パラメータの値
-
getParameters
指定の名前のリクエストパラメータの値を配列型式で取得します。- パラメータ:
name
- リクエストパラメータ名- 戻り値:
- パラメータの値配列(存在しない場合は、長さ0の配列を返します)
- 変更履歴:
- 5.3.2.0 (2011/02/01) 新規作成, 6.3.9.1 (2015/11/27) null ではなく長さが0の配列を返すことを検討する(findbugs)。
- このメソッドは、nullを返しません
-
getIntParameters
指定の名前のリクエストパラメータの値を配列(int)型式で取得します。- パラメータ:
name
- リクエストパラメータ名- 戻り値:
- パラメータの値配列(存在しない場合は、長さ0の配列を返します)
- 変更履歴:
- 5.3.2.0 (2011/02/01) 新規作成, 5.3.6.0 (2011/06/01) 配列値が""の場合にNumberFormatExceptionが発生するバグを修正, 6.3.9.1 (2015/11/27) null ではなく長さが0の配列を返すことを検討する(findbugs)。
- このメソッドは、nullを返しません
-