|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectorg.apache.struts.upload.MultipartIterator
この MultipartIterator クラスは、
マルチパートリクエストの入力データの読み込みと、
それを入力要素に分割する役割を担っており、表現を簡潔にするために
MultipartElement
を内包しています。
このクラスを使用するには、 HttpServletRequest をコンストラクタに渡して、
MultipartIterator インスタンスを新規に生成します。
getNextElement
メソッドが null を返すまで使用すると、処理が完了します。例:
MultipartIterator iterator = new MultipartIterator(request);
MultipartElement element;
while ((element = iterator.getNextElement()) != null) {
//element に関する処理
}
MultipartElement | フィールドの概要 | |
protected java.lang.String |
boundary
マルチパートリクエストの境界文字。 |
protected byte[] |
boundaryBytes
マルチパートリクエストの境界文字のバイト配列表現。 |
protected int |
bufferSize
リクエストから一度に読めるデータの総量。 |
protected int |
contentLength
リクエストのコンテント長。 |
protected boolean |
contentRead
ストリームの入力が完了したかどうか。 |
protected int |
diskBufferSize
ファイルシステムへ一度に書き込めるバイト数による最大サイズ [20K]。 |
protected BufferedMultipartInputStream |
inputStream
このクラスのための入力ストリームインスタンス。 |
static int |
MAX_LINE_SIZE
行の読み込みに使用されるバッファの、バイト数による最大サイズ [4K]。 |
protected long |
maxSize
許容される最大ファイルサイズのバイト数。 |
protected javax.servlet.http.HttpServletRequest |
request
このクラスのためのリクエストインスタンス。 |
protected java.lang.String |
tempDir
ファイルを置くための一時ディレクトリ。 |
protected long |
totalLength
リクエストから読んだ総バイト数。 |
| コンストラクタの概要 | |
MultipartIterator(javax.servlet.http.HttpServletRequest request)
デフォルトのバッファサイズおよび無制限のファイルサイズによって MultipartIterator を構築します。 |
|
MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize)
指定されたバッファサイズおよび無制限のファイルサイズによって MultipartIterator を構築します。 |
|
MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize,
long maxSize)
指定されたバッファサイズおよびバイト数で指定された、ファイルサイズの上限によって MultipartIterator を構築します。 |
|
MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize,
long maxSize,
java.lang.String tempDir)
|
|
| メソッドの概要 | |
protected java.io.File |
createLocalFile()
処理中のマルチパート要素からディスク上にファイルを生成します。 |
static boolean |
equals(byte[] comp,
int offset,
int length,
byte[] source)
等価であるかどうかバイト列をチェックします。 |
int |
getBufferSize()
一行から一度に読める総バイト数の上限を取得します。 |
long |
getMaxSize()
マルチパートリクエストとして許容される最大ポストデータサイズを取得します。 |
MultipartElement |
getNextElement()
イテレータ内に次の要素が存在する場合にそれを取り出します。 |
static java.lang.String |
parseBoundary(java.lang.String contentType)
境界文字について content-type の文字列を解析します。 |
static java.lang.String |
parseContentType(java.lang.String contentTypeString)
マルチパートフォームの "Content-Type" 行からコンテントタイプを解析します。 |
static java.lang.String |
parseDispositionFilename(java.lang.String dispositionString)
コンテントディスポジション行から "filename" 属性を取り出します。 |
static java.lang.String |
parseDispositionName(java.lang.String dispositionString)
コンテントディスポジション行から "name" 属性を取り出します。 |
static java.lang.String |
parseForAttribute(java.lang.String attribute,
java.lang.String parseString)
文字列を解析して対になる属性と値を探し出し、その値を返します。 |
protected void |
parseRequest()
処理対象となる境界文字の取得と入力ストリームの準備をします。 |
protected java.lang.String |
readLine()
改行に到達するまで入力ストリームを読み続けます。 |
void |
setBufferSize(int bufferSize)
一行から一度に読める総バイト数の上限をセットします。 |
void |
setMaxSize(long maxSize)
マルチパートリクエストとして許容される最大のポストデータサイズをセットします。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| フィールドの詳細 |
public static int MAX_LINE_SIZE
protected javax.servlet.http.HttpServletRequest request
protected BufferedMultipartInputStream inputStream
protected java.lang.String boundary
protected byte[] boundaryBytes
protected boolean contentRead
protected long maxSize
protected long totalLength
protected int contentLength
protected int diskBufferSize
protected int bufferSize
protected java.lang.String tempDir
| コンストラクタの詳細 |
public MultipartIterator(javax.servlet.http.HttpServletRequest request)
throws javax.servlet.ServletException
request - イテレータへ渡すマルチパートリクエスト
public MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize)
throws javax.servlet.ServletException
request - イテレータへ渡すマルチパートリクエストbufferSize - 入力ストリームから一度に読むべきサイズのバイト数
public MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize,
long maxSize)
throws javax.servlet.ServletException
request - イテレータへ渡すマルチパートリクエストbufferSize - 入力ストリームから一度に読めるサイズのバイト数maxSize - マルチパート要素のデータとして許容される最大サイズのバイト数
public MultipartIterator(javax.servlet.http.HttpServletRequest request,
int bufferSize,
long maxSize,
java.lang.String tempDir)
throws javax.servlet.ServletException
| メソッドの詳細 |
public MultipartElement getNextElement()
throws javax.servlet.ServletException,
java.io.UnsupportedEncodingException
MultipartElement
javax.servlet.ServletException - ポストされたサイズが、3 番目の引数でコンストラクタに渡された、
最大ファイルサイズを超えた場合
java.io.UnsupportedEncodingException - "ISO-8859-1" エンコーディングができない場合public void setBufferSize(int bufferSize)
ServletInputStream.readLine(byte[], int, int)public int getBufferSize()
ServletInputStream.readLine(byte[], int, int)public void setMaxSize(long maxSize)
maxSize - ポストデータのバイトでの最大サイズ、無制限にするためには -1
をセットしますpublic long getMaxSize()
protected void parseRequest()
throws javax.servlet.ServletException
javax.servlet.ServletExceptionpublic static java.lang.String parseBoundary(java.lang.String contentType)
public static java.lang.String parseContentType(java.lang.String contentTypeString)
contentTypeString - Content-Type 行に相当する文字列、 "\n" が付随します
nullpublic static java.lang.String parseDispositionName(java.lang.String dispositionString)
dispositionString - 完全な "Content-disposition" 文字列
null を、
そうでなければ name を返しますparseForAttribute(String, String)public static java.lang.String parseDispositionFilename(java.lang.String dispositionString)
dispositionString - 完全な "Content-disposition" 文字列
null を、
そうでなければ filename を返しますparseForAttribute(String, String)
public static java.lang.String parseForAttribute(java.lang.String attribute,
java.lang.String parseString)
String parseString = "Content-Disposition: filename=\"bob\" name=\"jack\"";
MultipartIterator.parseForAttribute(parseString, "name");
この場合は "bob" が返されます[訳注:例では引数が逆になっています、本来は定義通りに指定します]
attribute - 取り出したい属性の名前parseString - この文字列から値を取り出します
null
protected java.lang.String readLine()
throws javax.servlet.ServletException,
java.io.UnsupportedEncodingException
javax.servlet.ServletException
java.io.UnsupportedEncodingException
protected java.io.File createLocalFile()
throws java.io.IOException
java.io.IOException
public static boolean equals(byte[] comp,
int offset,
int length,
byte[] source)
comp - source と比較するバイト型変数offset - comp 内における開始位置length - 比較したい comp の長さsource - 等価テストを行うバイト列への参照
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||