package javacodebook.server.upload; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.fileupload.*; /** * Ein Beispiel für File-Upload mit Hilfe eines Formulars und dem Input-Typ "file". */ public class FileUploadServlet extends HttpServlet { //Das Zielverzeichis, in das letztendlich alle hochgeladenen Dateien //kopiert werden sollen (in der Form c:\tmp oder /tmp private File targetDir; /** Beim Initialisieren wird das Verzeichnis ausgelesen, in das die * hochgeladenen Dateien gespeichert werden sollen. Es wird in der Datei * web.xml angegeben. */ public void init(ServletConfig config) throws ServletException { super.init(config); try { //hier kann eine NullPointerException geworfen werden, wenn der //Parameter nicht gesetzt ist targetDir = new File(config.getInitParameter("target_dir")); if(!targetDir.exists() || !targetDir.isDirectory()) throw new IOException(); } catch(Exception e) { throw new ServletException("Init-Parameter target_dir " + "falsch gesetzt"); } } /** Datei-Upload muss mit der Post-Methode erfolgen. Daher wird hier die * doPost()-Methode verwendet. Mit Hilfe der Klasse FileUpload wird der * Datenstrom ausgewertet, den der Browser an das Servlet schickt. Er ist * als MIME-Datenstrom kodiert (RFC 1867). */ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, java.io.IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println(""); out.println(""); //Für das Parsen des Multipart-Requests wird ein FileUpload-Objekt verwendet FileUpload fileUpload = new FileUpload(); //maximal hochgeladene Datenmenge (Formularfelder + Dateien) fileUpload.setSizeMax(1000000); //Im Speicher gehaltener Cache fileUpload.setSizeThreshold(4096); //Speicherort/temporäres Verzeichnis für die hochgeladenen Daten ServletConfig config = getServletConfig(); ServletContext context = config.getServletContext(); File tmpDir = (File)context.getAttribute("javax.servlet.context.tempdir"); fileUpload.setRepositoryPath(tmpDir.getAbsolutePath()); //Hier erfolgt das eigentliche Parsen des Requests und die Auswertung try { List fileItems = fileUpload.parseRequest(req); out.println("Folgende Daten wurden übermittelt:
"); Iterator i = fileItems.iterator(); //Alle übermittelten Formularfelder und Dateien durchgehen und //entsprechende Auswertungen vornehmen while(i.hasNext()) { FileItem item = (FileItem) i.next(); if (item.isFormField()) { //Es handelt sich um ein Formular-Feld out.println(item.getFieldName() + "=" + item.getString() + "
"); } else { //Es handelt sich um eine Datei-Upload-Feld -> erst //überprüfen, ob eine Datei vorhanden ist if(item.getStoreLocation() != null) { out.println(item.getFieldName() + "=" + item.getName() + "
"); //Die temporäre Datei wird in ein definiertes Zielverzeichnis //kopiert item.write(targetDir + File.separator + item.getName()); } } } } catch(Exception e) { e.printStackTrace(out); } out.println(""); out.println(""); out.close(); } } --- upload.html ---
Name:


Beschreibung:


Bild:


Alter:


Hobbys:
Segeln Kino Fussball