パッケージ 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 に設定しても､無関係に､上書きされます｡ 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)型式で取得します｡
  `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, boolean useLocal) 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 // * @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

    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を返しません