パッケージ org.opengion.hayabusa.servlet

# クラス MultipartRequest

java.lang.Object
org.opengion.hayabusa.servlet.MultipartRequest

public final class MultipartRequest extends Object
ファイルをサーバーにアップロードする場合に使用されるマルチパート処理サーブレットです。 通常のファイルアップロード時の、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 に設定しても、無関係に、上書きされます。

変更履歴:
  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, String storageType, String bucketName)`
  MultipartRequest オブジェクトを構築します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int[]`
  `getIntParameters(String name)`
  指定の名前のリクエストパラメータの値を配列(int)型式で取得します。
  `String`
  `getParameter(String name)`
  指定の名前のリクエストパラメータの値を取得します。
  `String[]`
  `getParameterNames()`
  リクエストパラメータの名前配列を取得します。
  `String[]`
  `getParameters(String name)`
  指定の名前のリクエストパラメータの値を配列型式で取得します。
  `UploadedFile[]`
  `getUploadedFile()`
  ファイルアップロードされたファイル群のファイル配列を取得します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## コンストラクタの詳細

  - ### MultipartRequest

    public MultipartRequest(HttpServletRequest request, String saveDirectory, int maxPostSize, String encoding, String inputFilename, String useBackup, String fileURL, String storageType, String bucketName) throws IOException, IllegalArgumentException
    MultipartRequest オブジェクトを構築します。 引数として、ファイルアップロード時の保存フォルダ、最大サイズ、エンコード、 新しいファイル名などを指定できます。新しいファイル名は、アップロードされる ファイルが一つだけの場合に使用できます。複数のファイルを同時に変更したい 場合は、アップロードルールにのっとり、リクエストパラメータで指定してください。 HTML5 では、ファイルアップロード時に、multiple 属性（inputタグのtype="file"）を 付ける事で、ファイルを複数選択できます。 その場合は、inputのname属性は、一つなので、_NEW による名前の書き換えはできません。
    パラメータ:
      `request` - HttpServletRequestオブジェクト
      `saveDirectory` - ファイルアップロードがあった場合の保存フォルダ名
      `maxPostSize` - ファイルアップロード時の最大ファイルサイズ(Byte)0,またはマイナスで無制限
      `encoding` - ファイルのエンコード
      `inputFilename` - アップロードされたファイルの新しい名前
      `useBackup` - ファイルアップロード時に、バックアップ処理するかどうか[true/false/rename]を指定
      `fileURL` - クラウドストレージ用のURL
      `storageType` - クラウドストレージのタイプ(plugin)
      `bucketName` - クラウドストレージのバケット名
    例外:
      `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) クラウドストレージ対応を追加。

- ## メソッドの詳細

  - ### getParameterNames

    public String[] getParameterNames()
    リクエストパラメータの名前配列を取得します。
    戻り値:
      リクエストパラメータの名前配列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getUploadedFile

    public UploadedFile[] getUploadedFile()
    ファイルアップロードされたファイル群のファイル配列を取得します。
    戻り値:
      アップロードされたファイル群
    変更履歴:
      5.7.1.1 (2013/12/13) HTML5 ファイルアップロードの複数選択（multiple）対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getParameter

    public String getParameter(String name)
    指定の名前のリクエストパラメータの値を取得します。 複数存在する場合は、一番最後の値を返します。
    パラメータ:
      `name` - リクエストパラメータ名
    戻り値:
      パラメータの値

  - ### getParameters

    public String[] getParameters(String name)
    指定の名前のリクエストパラメータの値を配列型式で取得します。
    パラメータ:
      `name` - リクエストパラメータ名
    戻り値:
      パラメータの値配列(存在しない場合は、長さ０の配列を返します)
    変更履歴:
      5.3.2.0 (2011/02/01) 新規作成, 6.3.9.1 (2015/11/27) null ではなく長さが0の配列を返すことを検討する(findbugs)。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getIntParameters

    public int[] getIntParameters(String name)
    指定の名前のリクエストパラメータの値を配列(int)型式で取得します。
    パラメータ:
      `name` - リクエストパラメータ名
    戻り値:
      パラメータの値配列(存在しない場合は、長さ０の配列を返します)
    変更履歴:
      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を返しません