====== Dateien auf den Server hochladen ====== FIXME IE sendet kompletten Pfad... ===== Voraussetzungen ===== http://commons.apache.org/fileupload/ \\ http://commons.apache.org/io/ ===== Formular zum Hochladen ===== import java.io.PrintWriter; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FileUpload extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println(""); out.println(""); out.println("FileUpload"); out.println(""); out.println("
"); out.println(""); for (int i = 0; i < 5; i++) { out.println(""); out.println(""); out.println(""); out.println(""); } out.println("
File " + (i + 1) + ":
"); out.println(""); } finally { out.close(); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } }
===== Verarbeitung am Server ===== import java.io.IOException; import java.io.PrintWriter; import java.io.File; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.tomcat.util.http.fileupload.FileItem; import org.apache.tomcat.util.http.fileupload.FileUploadException; import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory; import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; public class SaveData extends HttpServlet { private String filePath = "data/"; private File file; final private int maxSize = 10000000; // 10 MB final private int maxThreshold = 1000000; // 1 MB protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, FileUploadException, Exception { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { File dir = new File(filePath); if (!dir.exists()) { dir.mkdirs(); } DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(maxThreshold); factory.setRepository(new File(".")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(maxSize); List fileItems = upload.parseRequest(request); Iterator it = fileItems.iterator(); while (it.hasNext()) { FileItem fi = (FileItem) it.next(); if (!fi.isFormField()) { file = new File(filePath + fi.getName()); fi.write(file); } } } finally { out.close(); } } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (FileUploadException ex) { Logger.getLogger(CsvReceiver.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(CsvReceiver.class.getName()).log(Level.SEVERE, null, ex); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (FileUploadException ex) { Logger.getLogger(CsvReceiver.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(CsvReceiver.class.getName()).log(Level.SEVERE, null, ex); } } @Override public String getServletInfo() { return "Short description"; } }