Elle est disponible à cette adresse :
http://jakarta.apache.org/commons/fileupload/
Voici un exemple de class Java qui utilise cet API:
http://www.micro-mind.net/files/uploadExample.java
import java.io.File; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUpload { public static boolean upload(HttpServletRequest request){ boolean result = false; try { // Check that we have a file upload request //boolean isMultipart = ServletFileUpload.isMultipartContent(request); //System.out.println(isMultipart); // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request List items = upload.parseRequest(request); // List FileItem Iterator iterator = items.iterator(); while (iterator.hasNext()) { FileItem item = (FileItem) iterator.next(); if (item.isFormField()) { processFormField(item); } else { processUploadedFile(item); } //item.write(uploadedFile); result = true; } }catch (FileUploadException fue) { fue.printStackTrace(); }catch (Throwable e) { e.printStackTrace(); } return result; } private static void processUploadedFile(FileItem item) { if (!item.isFormField()) { String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); System.out.println("FILENAME\rfieldName="+fieldName+"\rfileName="+fileName+"\rcontentType"+contentType+ "\risInMemory="+isInMemory+"\rsizeInBytes="+sizeInBytes); try{ File uploadedFile = new File("D:/"+fileName); item.write(uploadedFile); }catch (Exception e) { e.printStackTrace(); } } } private static void processFormField(FileItem item) { if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); System.out.println("FORMFIELD\rname="+name+"\rvalue="+value); } } }
No comments:
Post a Comment