package pl.zgora.uz.wmie.fe.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;
import pl.zgora.uz.wmie.fe.enums.DzialType;
import pl.zgora.uz.wmie.fe.hbm.classes.Dzial;
import pl.zgora.uz.wmie.fe.service.DzialService;
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;
}
}