SAK 図書館
JAVA Servlet、JSP 基礎編16 - ファイルアップロード、commons-fileupload
■ファイルアップロード
実は、私はフリーのとても使いやすいファイルアップロード jar を使用して
いるのだけど、commons-fileupload も試してみた。
commons-beanutils.jar に依存しているので注意である。
また、upload_????????.tmp というワークが item.delete(); しても残って
しまう。(Tomcat を終了すると消えるようではある。)
試した感じではかなり使い勝手は悪く感じる。(^^;
commons-fileupload-1.0-beta-1.jar
commons-beanutils.jar
/*
========================================================================
uoload.java ファイルアップロード
========================================================================
*/
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
public class upload extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String path = getServletContext().getRealPath("/jsp/") + "/";
String fnm = "test.txt";
// レスポンス準備
response.setContentType("text/html; charset=MS932");
PrintWriter out = response.getWriter();
// HTML ヘッド出力
out.println("<HTML>");
out.println("<HEAD>");
out.println("<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">");
out.println("<TITLE>ファイルアップロード</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
// ファイルアップロード
try {
FileUpload fup = new FileUpload();
fup.setSizeMax(10000000);
fup.setSizeThreshold(4096);
fup.setRepositoryPath(path);
List items = fup.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
out.println(item.getFieldName() + "<br>");
if (item.isFormField()) {
out.println(item.getString() + "<br>");
} else {
out.println("<br>ファイル<br>" + item.getName() + "<br>");
item.write(path + fnm);
item.delete(); // 一時ファイル削除
}
}
} catch (Exception e) {
out.println("エラー " + e.toString());
return;
}
out.println("<P>処理終了</P>");
// HTML テイル出力
out.println("</BODY>");
out.println("</HTML>");
}
}
■JAVA Servlet、JSP 基礎編資料
■JAVA Servlet、JSP + PostgreSQL 編資料
■JAVA Servlet、JSP + Oracle9i 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料