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