List of usage examples for org.apache.commons.fileupload FileItemIterator hasNext
boolean hasNext() throws FileUploadException, IOException;
From source file:us.mn.state.health.lims.analyzerimport.action.AnalyzerImportServlet.java
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String password = null;//from w w w.ja va2 s . co m String user = null; AnalyzerReader reader = null; boolean fileRead = false; InputStream stream = null; try { ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iterator = upload.getItemIterator(request); while (iterator.hasNext()) { FileItemStream item = iterator.next(); stream = item.openStream(); String name = null; if (item.isFormField()) { if (PASSWORD.equals(item.getFieldName())) { password = streamToString(stream); } else if (USER.equals(item.getFieldName())) { user = streamToString(stream); } } else { name = item.getName(); reader = AnalyzerReaderFactory.getReaderFor(name); if (reader != null) { fileRead = reader.readStream(new InputStreamReader(stream)); } } stream.close(); } } catch (Exception ex) { throw new ServletException(ex); } finally { if (stream != null) { try { stream.close(); } catch (IOException e) { // LOG.warning(e.toString()); } } } if (GenericValidator.isBlankOrNull(user) || GenericValidator.isBlankOrNull(password)) { response.getWriter().print("missing user"); response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); return; } if (!userValid(user, password)) { response.getWriter().print("invalid user/password"); response.setStatus(HttpServletResponse.SC_FORBIDDEN); return; } if (fileRead) { boolean successful = reader.insertAnalyzerData(systemUserId); if (successful) { response.getWriter().print("success"); response.setStatus(HttpServletResponse.SC_OK); return; } else { response.getWriter().print(reader.getError()); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } else { response.getWriter().print(reader.getError()); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); return; } }
From source file:zutil.jee.upload.AjaxFileUpload.java
@SuppressWarnings("unchecked") protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FileUploadListener listener = new FileUploadListener(); try {/*from w w w. j a v a2 s .c o m*/ // Initiate list and HashMap that will contain the data HashMap<String, String> fields = new HashMap<String, String>(); ArrayList<FileItem> files = new ArrayList<FileItem>(); // Add the listener to the session HttpSession session = request.getSession(); LinkedList<FileUploadListener> list = (LinkedList<FileUploadListener>) session .getAttribute(SESSION_FILEUPLOAD_LISTENER); if (list == null) { list = new LinkedList<FileUploadListener>(); session.setAttribute(SESSION_FILEUPLOAD_LISTENER, list); } list.add(listener); // Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); if (TEMPFILE_PATH != null) factory.setRepository(TEMPFILE_PATH); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); upload.setProgressListener(listener); // Set overall request size constraint //upload.setSizeMax(yourMaxRequestSize); // Parse the request FileItemIterator it = upload.getItemIterator(request); while (it.hasNext()) { FileItemStream item = it.next(); // Is the file type allowed? if (!item.isFormField() && !ALLOWED_EXTENSIONS.contains(FileUtil.getFileExtension(item.getName()).toLowerCase())) { String msg = "Filetype '" + FileUtil.getFileExtension(item.getName()) + "' is not allowed!"; logger.warning(msg); listener.setStatus(Status.Error); listener.setFileName(item.getName()); listener.setMessage(msg); return; } listener.setFileName(item.getName()); FileItem fileItem = factory.createItem(item.getFieldName(), item.getContentType(), item.isFormField(), item.getName()); // Read the file data Streams.copy(item.openStream(), fileItem.getOutputStream(), true); if (fileItem instanceof FileItemHeadersSupport) { final FileItemHeaders fih = item.getHeaders(); ((FileItemHeadersSupport) fileItem).setHeaders(fih); } //Handle the item if (fileItem.isFormField()) { fields.put(fileItem.getFieldName(), fileItem.getString()); } else { files.add(fileItem); logger.info("Recieved file: " + fileItem.getName() + " (" + StringUtil.formatByteSizeToString(fileItem.getSize()) + ")"); } } // Process the upload listener.setStatus(Status.Processing); doUpload(request, response, fields, files); // Done listener.setStatus(Status.Done); } catch (Exception e) { logger.log(Level.SEVERE, null, e); listener.setStatus(Status.Error); listener.setFileName(""); listener.setMessage(e.getMessage()); } }