![]() |
FileUpload のバックアップ(No.1) |
||
FileUpload?は、RFC 1867基準に沿った("HTMLに措けるFormベースのファイル・アップロード機能")HTTPリクエストを解析します。 HTTPリクエストがPOSTメソッドを用いてPOSTされ、Content-Typeが"multipart/form-data"である場合、FileUpload?は、リクエストを解析し、(Callerによって容易に利用され得る方法で)リクエストの結果を利用できるようにします。
// ファイルアップロードリクエストのチェック boolean isMultipart = FileUpload.isMultipartContent(request);
// ファイルアップロードハンドラの生成 DiskFileUpload upload = new DiskFileUpload();
// パラメータの設定 upload.setSizeThreshold(yourMaxMemorySize); upload.setSizeMax(yourMaxRequestSize); upload.setRepositoryPath(yourTempDirectory);
// リクエストの解析 List items = upload.parseRequest(request);
// アップロードアイテムの処理 Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next();
if (item.isFormField()) { // テキストフィールドの処理 } else { // ファイルアップロードフィールドの処理 } }
// ファイルアップロード情報の取得 if (!item.isFormField()) { String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); ... }
// ファイルアップロードデータの処理 if (writeToFile) { File uploadedFile = new File(...); item.write(uploadedFile); } else { InputStream uploadedStream = item.getInputStream(); ... uploadedStream.close(); }
// ファイルアップロードデータのメモリ上での処理 byte[] data = item.get(); ...