JAVA開発メモ
FileUpload のバックアップ(No.6)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]


Jakarta Commons FileUpload?

FileUpload?は、RFC 1867基準に沿った("HTMLに措けるFormベースのファイル・アップロード機能")HTTPリクエストを解析します。
HTTPリクエストがPOSTメソッドを用いてPOSTされ、Content-Typeが"multipart/form-data"である場合、FileUpload?は、リクエストを解析し、(Callerによって容易に利用され得る方法で)リクエストの結果を利用できるようにします。 本家翻訳

使用方法

 // ファイルアップロードリクエストのチェック
 boolean isMultipart = FileUpload.isMultipartContent(request);
 
 // ファイルアップロードハンドラの生成
 DiskFileItemFactory factory = new DiskFileItemFactory();
 String tempFileDir = yourTempDirPath; // テンポラリファイルの保存先
 factory.setRepository(new File(tempFileDir));
 factory.setSizeThreshold(yourMaxMemorySize); // バッファサイズ
 
 ServletFileUpload upload = new ServletFileUpload(factory);
 
 // パラメータの設定
 upload.setHeaderEncoding("UTF-8"); // ヘッダの文字エンコーディング
 upload.setSizeMax(-1); // アップロードファイルの最大サイズ(-1は無限)
 
 // リクエストの解析
 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();
 ...

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.008 sec.