なんか@ITのをコピったら古かったので調査
fileupload next版
参考:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28275&forum=12&2
--------------------------------------------------------
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
File path = new File("c://test/");
DiskFileItemFactory dfi = new DiskFileItemFactory();
dfi.setRepository(path); // 一時ファイルの保存先フォルダ
dfi.setSizeThreshold(1024); // バッファサイズ
ServletFileUpload sfu = new ServletFileUpload(dfi);
sfu.setSizeMax(-1); // アップロードファイルの最大サイズ(-1は無限)
sfu.setHeaderEncoding("Windows-31J"); // ヘッダの文字エンコーディング
try {
// アップロードされたファイル情報をFileItemオブジェクトのリストとして取得
List objLst= sfu.parseRequest(request);
Iterator objItr=objLst.iterator();
// リストから順にファイルデータを取り出し、「/WEB-INF/data/元のファイル名」の形式でアップロードファイルを保存
// 現在はテストで d://test/ に落ちる
while(objItr.hasNext()){
FileItem objFi = (FileItem)objItr.next();
if(!objFi.isFormField()){
// アップロードファイルの元ファイル名を取得
String strNam = objFi.getName();
if(strNam != null && !strNam.equals("")){
strNam = (new File(strNam)).getName();
objFi.write(new File(path + "/" + strNam));
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
// 処理後は元のupload.jspにリダイレクト
response.sendRedirect("upload.jsp");
}
}
以上、これでエクリプスの警告もでなくなったのでOKなのかな、と
0 件のコメント:
コメントを投稿