List of usage examples for org.apache.commons.fileupload.disk DiskFileItemFactory setRepository
public void setRepository(File repository)
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 ww w. j a va 2 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()); } }