// récupération des paramètres "autres" que le fichier CSV
if (isMultipartRequest(req)) {
final DiskFileItemFactory factory = new DiskFileItemFactory();
final ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(FILE_MAX_SIZE);
try {
final List<FileItem> items = upload.parseRequest(req);
final Iterator<FileItem> it = items.iterator();
while (it.hasNext()) {
final FileItem item = it.next();
if (item.isFormField()) {
if ("action".equals(item.getFieldName())) {
action = item.getString();
} else if ("id".equals(item.getFieldName())) {
id = item.getString();
} else if ("nas".equals(item.getFieldName())) {
req.setAttribute("nas", item.getString());
}
}
}
req.setAttribute("fileupload_items", items);
} catch (final FileUploadException e) {
LOGGER.error(e);
throw new RuntimeException(e);
}
}
...
// récupération du fichier
List<FileItem> items = (List<FileItem>) req.getAttribute("fileupload_items");
StringWriter sw_fichier_csv = null;
for (FileItem item : items) {
try {
if(item.isFormField()) {
req.setAttribute(item.getFieldName(), item.getString());
} else {
if (item.getFieldName().equals("fichier_csv")) {
InputStream fis = item.getInputStream();
sw_fichier_csv = new StringWriter();
IOUtils.copy(fis, sw_fichier_csv);
}
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
item.delete();
}
}