List of usage examples for org.apache.commons.fileupload FileItemStream isFormField
boolean isFormField();
FileItem
instance represents a simple form field. From source file:com.ultrapower.eoms.common.plugin.ajaxupload.AjaxMultiPartRequest.java
/** * Creates a new request wrapper to handle multi-part data using methods * adapted from Jason Pell's multipart classes (see class description). * //w ww .j a v a 2s. c o m * @param saveDir * the directory to save off the file * @param servletRequest * the request containing the multipart * @throws java.io.IOException * is thrown if encoding fails. * @throws */ public void parse(HttpServletRequest servletRequest, String saveDir) throws IOException { Integer delay = 3; UploadListener listener = null; DiskFileItemFactory fac = null; // Parse the request try { if (maxSize >= 0L && servletRequest.getContentLength() > maxSize) { servletRequest.setAttribute("error", "size"); FileItemIterator it = new ServletFileUpload(fac).getItemIterator(servletRequest); // handle with each file: while (it.hasNext()) { FileItemStream item = it.next(); if (item.isFormField()) { List<String> values; if (params.get(item.getFieldName()) != null) { values = params.get(item.getFieldName()); } else { values = new ArrayList<String>(); } InputStream stream = item.openStream(); values.add(Streams.asString(stream)); params.put(item.getFieldName(), values); } } return; } else { listener = new UploadListener(servletRequest, delay); fac = new MonitoredDiskFileItemFactory(listener); } // Make sure that the data is written to file fac.setSizeThreshold(0); if (saveDir != null) { fac.setRepository(new File(saveDir)); } ServletFileUpload upload = new ServletFileUpload(fac); upload.setSizeMax(maxSize); List items = upload.parseRequest(createRequestContext(servletRequest)); for (Object item1 : items) { FileItem item = (FileItem) item1; if (log.isDebugEnabled()) log.debug("Found item " + item.getFieldName()); if (item.isFormField()) { log.debug("Item is a normal form field"); List<String> values; if (params.get(item.getFieldName()) != null) { values = params.get(item.getFieldName()); } else { values = new ArrayList<String>(); } String charset = servletRequest.getCharacterEncoding(); if (charset != null) { values.add(item.getString(charset)); } else { values.add(item.getString()); } params.put(item.getFieldName(), values); } else { log.debug("Item is a file upload"); // Skip file uploads that don't have a file name - meaning // that no file was selected. if (item.getName() == null || item.getName().trim().length() < 1) { log.debug("No file has been uploaded for the field: " + item.getFieldName()); continue; } String targetFileName = item.getName(); if (!targetFileName.contains(":")) item.write(new File(targetDirectory + targetFileName)); //?Action List<FileItem> values; if (files.get(item.getFieldName()) != null) { values = files.get(item.getFieldName()); } else { values = new ArrayList<FileItem>(); } values.add(item); files.put(item.getFieldName(), values); } } } catch (Exception e) { log.error(e); errors.add(e.getMessage()); } }
From source file:com.fullmetalgalaxy.server.AccountServlet.java
@Override protected void doPost(HttpServletRequest p_request, HttpServletResponse p_response) throws ServletException, IOException { ServletFileUpload upload = new ServletFileUpload(); Map<String, String> params = new HashMap<String, String>(); boolean isConnexion = false; boolean isPassword = false; try {/* w w w .ja va2 s . c om*/ // Parse the request FileItemIterator iter = upload.getItemIterator(p_request); while (iter.hasNext()) { FileItemStream item = iter.next(); if (item.isFormField()) { if (item.getFieldName().equalsIgnoreCase("connexion")) { isConnexion = true; } if (item.getFieldName().equalsIgnoreCase("password")) { isPassword = true; } params.put(item.getFieldName(), Streams.asString(item.openStream(), "UTF-8")); } } } catch (FileUploadException e) { log.error(e); } if (isConnexion) { // user try to connect with an FMG account boolean isConnected = true; isConnected = connectFmgUser(p_request, p_response, params); if (isConnected) { String continueUrl = params.get("continue"); if (continueUrl == null) { // by default, my games is the default url continueUrl = "/gamelist.jsp"; } p_response.sendRedirect(continueUrl); } return; } else if (isPassword) { // user ask for his password to be send on his email String msg = ""; FmgDataStore ds = new FmgDataStore(false); Query<EbAccount> query = ds.query(EbAccount.class).filter("m_email", params.get("email")); QueryResultIterator<EbAccount> it = query.iterator(); if (!it.hasNext()) { msg = "l'adresse mail " + params.get("email") + " n'a pas t trouv"; } else { EbAccount account = it.next(); if (account.getLastPasswordAsk() != null && account.getLastPasswordAsk() .getTime() > System.currentTimeMillis() - (1000 * 60 * 60 * 24)) { msg = "une seule demande par jour"; } else if (account.getAuthProvider() != AuthProvider.Fmg) { msg = "ce compte FMG est associ a un compte google"; } else { // all is ok, send a mail new FmgMessage("askPassword").sendEMail(account); msg = "un email a t envoy " + account.getEmail(); account.setLastPasswordAsk(new Date()); ds.put(account); } } ds.close(); p_response.sendRedirect("/password.jsp?msg=" + msg); return; } else { // update or create new account String msg = checkParams(params); if (msg != null) { p_response.sendRedirect("/account.jsp?msg=" + msg); return; } msg = saveAccount(p_request, p_response, params); if (msg != null) { p_response.sendRedirect("/account.jsp?msg=" + msg); return; } else { if (!Auth.isUserLogged(p_request, p_response)) { Auth.connectUser(p_request, params.get("login")); } if ("0".equalsIgnoreCase(params.get("accountid"))) { // return page new games p_response.sendRedirect("/gamelist.jsp?tab=0"); } else { // stay editing profile p_response.sendRedirect("/profile.jsp?id=" + params.get("accountid")); } return; } } }
From source file:com.github.cxt.Myjersey.jerseycore.FileResource.java
@Path("upload2") @POST//from ww w . j a v a 2 s . com @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_JSON) public String uploadFile(@Context HttpServletRequest request) throws IOException { //??,httpclent? System.out.println(request.getCharacterEncoding()); ServletFileUpload upload = new ServletFileUpload(); upload.setHeaderEncoding(CHARSET); try { FileItemIterator fileIterator = upload.getItemIterator(request); while (fileIterator.hasNext()) { FileItemStream item = fileIterator.next(); InputStream is = item.openStream(); try { if (!item.isFormField()) { String fileName = item.getName(); if (fileName == null || fileName.trim().equals("")) { continue; } String name = Calendar.getInstance().getTimeInMillis() + fileName; String path = request.getServletContext().getRealPath("/"); path += File.separator + "data" + File.separator + name; File file = new File(path); FileUtils.copyInputStreamToFile(is, file); } else { System.out.println(Streams.asString(is, CHARSET)); } } finally { if (null != is) { try { is.close(); } catch (IOException ignore) { } } } } return "{\"success\": true}"; } catch (IOException | FileUploadException e) { return "{\"success\": false}"; } }
From source file:cn.webwheel.ActionSetter.java
@SuppressWarnings("unchecked") public Object[] set(Object action, ActionInfo ai, HttpServletRequest request) throws IOException { SetterConfig cfg = ai.getSetterConfig(); List<SetterInfo> setters; if (action != null) { Class cls = action.getClass(); setters = setterMap.get(cls);/*from w w w . ja v a 2s . c o m*/ if (setters == null) { synchronized (this) { setters = setterMap.get(cls); if (setters == null) { Map<Class, List<SetterInfo>> map = new HashMap<Class, List<SetterInfo>>(setterMap); map.put(cls, setters = parseSetters(cls)); setterMap = map; } } } } else { setters = Collections.emptyList(); } List<SetterInfo> args = argMap.get(ai.actionMethod); if (args == null) { synchronized (this) { args = argMap.get(ai.actionMethod); if (args == null) { Map<Method, List<SetterInfo>> map = new HashMap<Method, List<SetterInfo>>(argMap); map.put(ai.actionMethod, args = parseArgs(ai.actionMethod)); argMap = map; } } } if (setters.isEmpty() && args.isEmpty()) return new Object[0]; Map<String, Object> params; try { if (cfg.getCharset() != null) { request.setCharacterEncoding(cfg.getCharset()); } } catch (UnsupportedEncodingException e) { // } if (ServletFileUpload.isMultipartContent(request)) { params = new HashMap<String, Object>(request.getParameterMap()); request.setAttribute(WRPName, params); ServletFileUpload fileUpload = new ServletFileUpload(); if (cfg.getCharset() != null) { fileUpload.setHeaderEncoding(cfg.getCharset()); } if (cfg.getFileUploadSizeMax() != 0) { fileUpload.setSizeMax(cfg.getFileUploadSizeMax()); } if (cfg.getFileUploadFileSizeMax() != 0) { fileUpload.setFileSizeMax(cfg.getFileUploadFileSizeMax()); } boolean throwe = false; try { FileItemIterator it = fileUpload.getItemIterator(request); while (it.hasNext()) { FileItemStream fis = it.next(); if (fis.isFormField()) { String s = Streams.asString(fis.openStream(), cfg.getCharset()); Object o = params.get(fis.getFieldName()); if (o == null) { params.put(fis.getFieldName(), new String[] { s }); } else if (o instanceof String[]) { String[] ss = (String[]) o; String[] nss = new String[ss.length + 1]; System.arraycopy(ss, 0, nss, 0, ss.length); nss[ss.length] = s; params.put(fis.getFieldName(), nss); } } else if (!fis.getName().isEmpty()) { File tempFile; try { tempFile = File.createTempFile("wfu", null); } catch (IOException e) { throwe = true; throw e; } FileExImpl fileEx = new FileExImpl(tempFile); Object o = params.get(fis.getFieldName()); if (o == null) { params.put(fis.getFieldName(), new FileEx[] { fileEx }); } else if (o instanceof FileEx[]) { FileEx[] ss = (FileEx[]) o; FileEx[] nss = new FileEx[ss.length + 1]; System.arraycopy(ss, 0, nss, 0, ss.length); nss[ss.length] = fileEx; params.put(fis.getFieldName(), nss); } Streams.copy(fis.openStream(), new FileOutputStream(fileEx.getFile()), true); fileEx.fileName = fis.getName(); fileEx.contentType = fis.getContentType(); } } } catch (FileUploadException e) { if (action instanceof FileUploadExceptionAware) { ((FileUploadExceptionAware) action).setFileUploadException(e); } } catch (IOException e) { if (throwe) { throw e; } } } else { params = request.getParameterMap(); } if (cfg.getSetterPolicy() == SetterPolicy.ParameterAndField || (cfg.getSetterPolicy() == SetterPolicy.Auto && args.isEmpty())) { for (SetterInfo si : setters) { si.setter.set(action, si.member, params, si.paramName); } } Object[] as = new Object[args.size()]; for (int i = 0; i < as.length; i++) { SetterInfo si = args.get(i); as[i] = si.setter.set(action, null, params, si.paramName); } return as; }
From source file:com.github.thorqin.webapi.FileManager.java
public List<FileInfo> saveUploadFiles(HttpServletRequest request, int maxSize) throws ServletException, IOException, FileUploadException { List<FileInfo> uploadList = new LinkedList<>(); request.setCharacterEncoding("utf-8"); ServletFileUpload upload = new ServletFileUpload(); upload.setHeaderEncoding("UTF-8"); if (!ServletFileUpload.isMultipartContent(request)) { return uploadList; }// w w w. j ava 2 s . c o m upload.setSizeMax(maxSize); FileItemIterator iter; iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); try (InputStream stream = item.openStream()) { if (!item.isFormField()) { FileInfo info = new FileInfo(); info.setFileName(item.getName()); if (getFileMIME(info.getExtName()) == null) { logger.log(Level.WARNING, "Upload file's MIME type isn't permitted."); continue; } info = store(stream, info.fileName); uploadList.add(info); } } } return uploadList; }
From source file:com.sifiso.yazisa.util.PhotoUtil.java
public ResponseDTO downloadPhotos(HttpServletRequest request, PlatformUtil platformUtil) throws FileUploadException { logger.log(Level.INFO, "######### starting PHOTO DOWNLOAD process\n\n"); ResponseDTO resp = new ResponseDTO(); InputStream stream = null;/*from ww w .j av a 2 s . c om*/ File rootDir; try { rootDir = YazisaProperties.getImageDir(); logger.log(Level.INFO, "rootDir - {0}", rootDir.getAbsolutePath()); if (!rootDir.exists()) { rootDir.mkdir(); } } catch (Exception ex) { logger.log(Level.SEVERE, "Properties file problem", ex); resp.setMessage("Server file unavailable. Please try later"); resp.setStatusCode(114); return resp; } PhotoUploadDTO dto = null; Gson gson = new Gson(); File schoolDir = null, classDir = null, parentDir = null, teacherDir = null, studentDir = null; try { ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); stream = item.openStream(); if (item.isFormField()) { if (name.equalsIgnoreCase("JSON")) { String json = Streams.asString(stream); if (json != null) { logger.log(Level.INFO, "picture with associated json: {0}", json); dto = gson.fromJson(json, PhotoUploadDTO.class); if (dto != null) { if (dto.getSchoolID() > 0) { schoolDir = createSchoolDirectory(rootDir, schoolDir, dto.getSchoolID()); } if (dto.getClassID() > 0) { classDir = createClassDirectory(schoolDir, classDir, dto.getClassID()); } if (dto.getParentID() > 0) { parentDir = createParentDirectory(schoolDir, parentDir); } if (dto.getTeacherID() > 0) { teacherDir = createTeacherDirectory(schoolDir, teacherDir); } if (dto.getStudentID() > 0) { studentDir = createStudentDirectory(rootDir, studentDir); } } } else { logger.log(Level.WARNING, "JSON input seems pretty fucked up! is NULL.."); } } } else { File imageFile = null; if (dto == null) { continue; } DateTime dt = new DateTime(); String fileName = ""; if (dto.isIsFullPicture()) { fileName = "f" + dt.getMillis() + ".jpg"; } else { fileName = "t" + dt.getMillis() + ".jpg"; } if (dto.getSchoolID() != null) { if (dto.isIsFullPicture()) { fileName = "f" + dto.getSchoolID() + ".jpg"; } else { fileName = "t" + dto.getSchoolID() + ".jpg"; } } if (dto.getSchoolID() != null) { if (dto.getTeacherID() != null) { if (dto.isIsFullPicture()) { fileName = "f" + dto.getTeacherID() + ".jpg"; } else { fileName = "t" + dto.getTeacherID() + ".jpg"; } } } if (dto.getSchoolID() != null) { if (dto.getClassID() != null) { if (dto.isIsFullPicture()) { fileName = "f" + dto.getClassID() + "-" + new Date().getYear() + ".jpg"; } else { fileName = "t" + dto.getClassID() + "-" + new Date().getYear() + ".jpg"; } } } if (dto.getSchoolID() != null) { if (dto.getParentID() != null) { if (dto.isIsFullPicture()) { fileName = "f" + dto.getParentID() + ".jpg"; } else { fileName = "t" + dto.getParentID() + ".jpg"; } } } if (dto.getStudentID() != null) { if (dto.isIsFullPicture()) { fileName = "f" + dto.getStudentID() + ".jpg"; } else { fileName = "t" + dto.getStudentID() + ".jpg"; } } // switch (dto.getPictureType()) { case PhotoUploadDTO.SCHOOL_IMAGE: imageFile = new File(schoolDir, fileName); break; case PhotoUploadDTO.CLASS_IMAGE: imageFile = new File(classDir, fileName); break; case PhotoUploadDTO.PARENT_IMAGE: imageFile = new File(parentDir, fileName); break; case PhotoUploadDTO.STUDENT_IMAGE: imageFile = new File(studentDir, fileName); break; } writeFile(stream, imageFile); resp.setStatusCode(0); resp.setMessage("Photo downloaded from mobile app "); //add database System.out.println("filepath: " + imageFile.getAbsolutePath()); //create uri /*int index = imageFile.getAbsolutePath().indexOf("monitor_images"); if (index > -1) { String uri = imageFile.getAbsolutePath().substring(index); System.out.println("uri: " + uri); dto.setUri(uri); } dto.setDateUploaded(new Date()); if (dto.isIsFullPicture()) { dto.setThumbFlag(null); } else { dto.setThumbFlag(1); } dataUtil.addPhotoUpload(dto);*/ } } } catch (FileUploadException | IOException | JsonSyntaxException ex) { logger.log(Level.SEVERE, "Servlet failed on IOException, images NOT uploaded", ex); throw new FileUploadException(); } return resp; }
From source file:com.googlecode.npackdweb.RepUploadAction.java
@Override public Page perform(HttpServletRequest req, HttpServletResponse resp) throws IOException { List<String> messages = new ArrayList<String>(); Found f = null;/*from w w w .j av a 2 s .c o m*/ String tag = "unknown"; boolean overwrite = false; if (ServletFileUpload.isMultipartContent(req)) { ServletFileUpload upload = new ServletFileUpload(); FileItemIterator iterator; try { iterator = upload.getItemIterator(req); while (iterator.hasNext()) { FileItemStream item = iterator.next(); InputStream stream = item.openStream(); try { if (item.isFormField()) { if (item.getFieldName().equals("tag")) { BufferedReader r = new BufferedReader(new InputStreamReader(stream)); tag = r.readLine(); } else if (item.getFieldName().equals("overwrite")) { overwrite = true; } } else { f = process(stream); } } finally { stream.close(); } } } catch (FileUploadException e) { throw (IOException) new IOException(e.getMessage()).initCause(e); } } else { tag = req.getParameter("tag"); String rep = req.getParameter("repository"); overwrite = req.getParameter("overwrite") != null; f = process(new ByteArrayInputStream(rep.getBytes("UTF-8"))); } if (f != null) { boolean isAdmin = NWUtils.isAdminLoggedIn(); for (PackageVersion pv : f.pvs) { pv.tags.add(tag); } Objectify ofy = DefaultServlet.getObjectify(); List<Key<?>> keys = new ArrayList<Key<?>>(); for (License lic : f.lics) { keys.add(lic.createKey()); } for (PackageVersion pv : f.pvs) { keys.add(pv.createKey()); } for (Package p : f.ps) { keys.add(p.createKey()); } Map<Key<Object>, Object> existing = ofy.get(keys); Stats stats = new Stats(); Iterator<PackageVersion> it = f.pvs.iterator(); while (it.hasNext()) { PackageVersion pv = it.next(); PackageVersion found = (PackageVersion) existing.get(pv.createKey()); if (found != null) { stats.pvExisting++; if (!overwrite) it.remove(); } } Iterator<License> itLic = f.lics.iterator(); while (itLic.hasNext()) { License pv = itLic.next(); License found = (License) existing.get(pv.createKey()); if (found != null) { stats.licExisting++; if (!overwrite) itLic.remove(); } } Iterator<Package> itP = f.ps.iterator(); while (itP.hasNext()) { Package p = itP.next(); Package found = (Package) existing.get(p.createKey()); if (found != null) { stats.pExisting++; if (!overwrite) itP.remove(); } } for (PackageVersion pv : f.pvs) { Package p = ofy.find(new Key<Package>(Package.class, pv.package_)); if (p != null && !p.isCurrentUserPermittedToModify()) messages.add("You do not have permission to modify this package: " + pv.package_); } for (Package p : f.ps) { Package p_ = ofy.find(new Key<Package>(Package.class, p.name)); if (p_ != null && !p_.isCurrentUserPermittedToModify()) messages.add("You do not have permission to modify this package: " + p.name); } if (f.lics.size() > 0) { if (isAdmin) ofy.put(f.lics); else messages.add("Only an administrator can change licenses"); } ofy.put(f.pvs); for (Package p : f.ps) { NWUtils.savePackage(ofy, p, true); } if (overwrite) { stats.pOverwritten = stats.pExisting; stats.pvOverwritten = stats.pvExisting; stats.licOverwritten = stats.licExisting; stats.pAppended = f.ps.size() - stats.pOverwritten; stats.pvAppended = f.pvs.size() - stats.pvOverwritten; stats.licAppended = f.lics.size() - stats.licOverwritten; } else { stats.pAppended = f.ps.size(); stats.pvAppended = f.pvs.size(); stats.licAppended = f.lics.size(); } messages.add(stats.pOverwritten + " packages overwritten, " + stats.pvOverwritten + " package versions overwritten, " + stats.licOverwritten + " licenses overwritten, " + stats.pAppended + " packages appended, " + stats.pvAppended + " package versions appended, " + stats.licAppended + " licenses appended"); } else { messages.add("No data found"); } return new MessagePage(messages); }
From source file:de.eorganization.hoopla.server.servlets.TemplateImportServlet.java
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { DecisionTemplate newDecisionTemplate = new DecisionTemplate(); DecisionTemplate decisionTemplate = null; try {//from www.j av a 2 s. co m ServletFileUpload upload = new ServletFileUpload(); resp.setContentType("text/plain"); FileItemIterator itemIterator = upload.getItemIterator(req); while (itemIterator.hasNext()) { FileItemStream item = itemIterator.next(); if (item.isFormField() && "substituteTemplateId".equals(item.getFieldName())) { log.warning("Got a form field: " + item.getFieldName()); String itemContent = IOUtils.toString(item.openStream()); try { decisionTemplate = new HooplaServiceImpl() .getDecisionTemplate(new Long(itemContent).longValue()); new HooplaServiceImpl().deleteDecisionTemplate(decisionTemplate); } catch (Exception e) { log.log(Level.WARNING, e.getLocalizedMessage(), e); } if (decisionTemplate == null) newDecisionTemplate.setKeyId(new Long(itemContent).longValue()); else newDecisionTemplate.setKeyId(decisionTemplate.getKeyId()); } else { InputStream stream = item.openStream(); log.info("Got an uploaded file: " + item.getFieldName() + ", name = " + item.getName()); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(stream); // doc.getDocumentElement().normalize(); Element decisionElement = doc.getDocumentElement(); String rootName = decisionElement.getNodeName(); if (rootName.equals("decision")) { isDecisionTemplate = false; } else if (rootName.equals("decisionTemplate")) { isDecisionTemplate = true; } else { log.warning("This XML Document has a wrong RootElement: " + rootName + ". It should be <decision> or <decisionTemplate>."); } NodeList decisionNodes = decisionElement.getChildNodes(); for (int i = 0; i < decisionNodes.getLength(); i++) { Node node = decisionNodes.item(i); if (node instanceof Element) { Element child = (Element) node; if (child.getNodeName().equals("name") && !child.getTextContent().equals("")) { newDecisionTemplate.setName(child.getTextContent()); log.info("Parsed decision name: " + newDecisionTemplate.getName()); } if (child.getNodeName().equals("description") && !child.getTextContent().equals("")) { newDecisionTemplate.setDescription(child.getTextContent()); log.info("Parsed decision description: " + newDecisionTemplate.getDescription()); } if (isDecisionTemplate && child.getNodeName().equals("templateName")) { newDecisionTemplate.setTemplateName(child.getTextContent()); log.info("Parsed decision TemplateName: " + newDecisionTemplate.getTemplateName()); } if (child.getNodeName().equals("alternatives")) { parseAlternatives(child.getChildNodes(), newDecisionTemplate); } if (child.getNodeName().equals("goals")) { parseGoals(child.getChildNodes(), newDecisionTemplate); } if (child.getNodeName().equals("importanceGoals")) { parseGoalImportances(child.getChildNodes(), newDecisionTemplate); } } } log.info("Fully parsed XML Upload: " + newDecisionTemplate.toString()); } } } catch (Exception ex) { log.log(Level.WARNING, ex.getLocalizedMessage(), ex); resp.sendError(400); return; } try { new HooplaServiceImpl().storeDecisionTemplate(newDecisionTemplate); } catch (Exception e) { log.log(Level.WARNING, e.getLocalizedMessage(), e); resp.sendError(500); return; } log.info("returning to referer " + req.getHeader("referer")); resp.sendRedirect( req.getHeader("referer") != null && !"".equals(req.getHeader("referer")) ? req.getHeader("referer") : "localhost:8088"); }
From source file:ai.baby.servlets.GenericFileGrabber.java
private Return<File> processFileUploadRequest(final FileItemIterator iter, final HttpSession session) throws IOException, FileUploadException { String returnVal = "Sorry! No Items To Process"; final Map<String, String> parameterMap = new HashMap<String, String>(); final File tempFile = getTempFile(); String userFileExtension = null; while (iter.hasNext()) { final FileItemStream item = iter.next(); final String paramName = item.getFieldName(); final InputStream stream = item.openStream(); if (item.isFormField()) {//Parameter-Value final String paramValue = Streams.asString(stream); parameterMap.put(paramName, paramValue); }// w ww. j av a 2s. c om if (!item.isFormField()) { final String usersFileName = item.getName(); final int extensionDotIndex = usersFileName.lastIndexOf("."); userFileExtension = usersFileName.substring(extensionDotIndex + 1); final FileOutputStream fos = new FileOutputStream(tempFile); int byteCount = 0; while (true) { final int dataByte = stream.read(); if (byteCount++ > UPLOAD_LIMIT) { fos.close(); tempFile.delete(); return new ReturnImpl<File>(ExceptionCache.FILE_SIZE_EXCEPTION, "File Too Big!", true); } if (dataByte != -1) { fos.write(dataByte); } else { break;//break loop } } fos.close(); } } final FileUploadListenerFace<File> fulf; /** * Implement this as a set of listeners. Why it wasn't done now is that, a new object of listener should be * created per request and added to the listener pool(list or array whatever). */ switch (Integer.parseInt(parameterMap.get("type"))) { case 1: fulf = CDNProfilePhoto.getProfilePhotoCDNLocal(); break; default: return new ReturnImpl<File>(ExceptionCache.UNSUPPORTED_SWITCH, "Unsupported Case", true); } if (tempFile == null) { return new ReturnImpl<File>(ExceptionCache.UNSUPPORTED_OPERATION_EXCEPTION, "No File!", true); } return fulf.run(tempFile, parameterMap, userFileExtension, session); }
From source file:com.github.thorqin.toolkit.web.utility.UploadManager.java
/** * Save upload file to disk//w ww. ja v a2 s. co m * @param request HttpServletRequest * @param maxSize maximum size of the upload file, in bytes. * @return Saved file info list * @throws ServletException * @throws IOException * @throws FileUploadException */ public List<FileInfo> saveUploadFiles(HttpServletRequest request, int maxSize) throws ServletException, IOException, FileUploadException { List<FileInfo> uploadList = new LinkedList<>(); request.setCharacterEncoding("utf-8"); ServletFileUpload upload = new ServletFileUpload(); upload.setHeaderEncoding("UTF-8"); if (!ServletFileUpload.isMultipartContent(request)) { return uploadList; } upload.setSizeMax(maxSize); FileItemIterator iterator = upload.getItemIterator(request); while (iterator.hasNext()) { FileItemStream item = iterator.next(); try (InputStream stream = item.openStream()) { if (!item.isFormField()) { FileInfo info = new FileInfo(); info.setFileName(item.getName()); if (pattern != null && !pattern.matcher(info.fileName).matches()) { continue; } info = store(stream, info.fileName); uploadList.add(info); } } } return uploadList; }