package pl.zgora.uz.wmie.fe.gui.common.util;
import java.io.File;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FormUtil {
public Map<String, String> parseMultiPartContent(HttpServletRequest req,
String FileSaveDir) {
Map<String, String> fieldsValues = new HashMap<String, String>();
try {
boolean isMultipart = ServletFileUpload.isMultipartContent(req);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// FileItemIterator iter1 = upload.getItemIterator(req);
List items = upload.parseRequest(req);
/*
* Formularz wysylany jest jako multipart, wiec nie uzyskamy
* normalnego dostepu do pol potrzeba jest uzyskiwac je poprzez
* biblioteke apache-commons. Dla uniwersalnosci formularza, mozna
* dodac opcje w przypadku gdy jest przesylany formularz "normalny"
*/
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
fieldsValues.put(name, value);
} else {
// String fieldName = item.getFieldName();
String fileName = item.getName();
// String contentType = item.getContentType();
// boolean isInMemory = item.isInMemory();
// long sizeInBytes = item.getSize();
// plik gdzie ma zostac zapisany plik
File uploadedFile = new File(FileSaveDir + fileName);
item.write(uploadedFile);
// byte[] data = item.get();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return fieldsValues;
}
}