List of usage examples for org.apache.commons.fileupload FileItem write
void write(File file) throws Exception;
From source file:com.weaforce.system.component.fckeditor.connector.ConnectorServlet.java
/** * Manage the <code>POST</code> requests (<code>FileUpload</code>).<br /> * /*w ww.j a v a 2s . c o m*/ * The servlet accepts commands sent in the following format:<br /> * <code>connector?Command=<FileUpload>&Type=<ResourceType>&CurrentFolder=<FolderPath></code> * with the file in the <code>POST</code> body.<br /> * <br> * It stores an uploaded file (renames a file if another exists with the * same name) and then returns the JavaScript callback. */ @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.debug("Entering Connector#doPost"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); // "FileUpload" String typeStr = request.getParameter("Type"); // Image String currentFolderStr = request.getParameter("CurrentFolder"); // "/" imageSubPath = request.getParameter("subpath"); logger.info("Parameter Command in doPost: {}", commandStr); logger.info("Parameter Type in doPost: {}", typeStr); logger.info("Parameter CurrentFolder in doPost: {}", currentFolderStr); UploadResponse ur; // if this is a QuickUpload request, 'commandStr' and 'currentFolderStr' // are empty if (StringUtil.isEmpty(commandStr) && StringUtil.isEmpty(currentFolderStr)) { commandStr = "QuickUpload"; currentFolderStr = "/"; } if (!RequestCycleHandler.isEnabledForFileUpload(request)) ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR, null, null, Messages.NOT_AUTHORIZED_FOR_UPLOAD); else if (!CommandHandler.isValidForPost(commandStr)) ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_COMMAND); else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr)) ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_TYPE); else if (!FileUtils.isValidPath(currentFolderStr)) ur = UploadResponse.UR_INVALID_CURRENT_FOLDER; else { ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr); //String userLogin = Security.getCurrentUserName().toLowerCase(); // typePath=\\data\\file in the weaforce.properties String typePath = UtilsFile.constructServerSidePath(request, resourceType); typePath = typePath + "/" + imageSubPath + "/" + DateUtil.getCurrentYearObliqueMonthStr(); System.out.println("typePath: " + typePath); logger.info("doPost: typePath value is: {}", typePath); String typeDirPath = typePath; FileUtils.checkAndCreateDir(typeDirPath); File typeDir = new File(typeDirPath); File currentDir = new File(typeDir, currentFolderStr); if (!currentDir.exists()) ur = UploadResponse.UR_INVALID_CURRENT_FOLDER; else { String newFilename = null; FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items = upload.parseRequest(request); // We upload only one file at the same time FileItem uplFile = items.get(0); String rawName = UtilsFile.sanitizeFileName(uplFile.getName()); String filename = FilenameUtils.getName(rawName); // String baseName = // FilenameUtils.removeExtension(filename); String extension = FilenameUtils.getExtension(filename); if (!ExtensionsHandler.isAllowed(resourceType, extension)) ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION); else { filename = getFilename(typeDirPath, System.currentTimeMillis(), extension); File pathToSave = new File(currentDir, filename); // String responseUrl = UtilsResponse // .constructResponseUrl(request, resourceType, // currentFolderStr, true, // ConnectorHandler.isFullUrl()); String responseUrl = UtilsResponse.constructResponseUrl(resourceType, imageSubPath, currentFolderStr); if (StringUtil.isEmpty(newFilename)) { responseUrl = responseUrl + DateUtil.getCurrentYearObliqueMonthStr() + "/"; ur = new UploadResponse(UploadResponse.SC_OK, responseUrl.concat(filename)); } else ur = new UploadResponse(UploadResponse.SC_RENAMED, responseUrl.concat(newFilename), newFilename); // secure image check if (resourceType.equals(ResourceTypeHandler.IMAGE) && ConnectorHandler.isSecureImageUploads()) { if (FileUtils.isImage(uplFile.getInputStream())) uplFile.write(pathToSave); else { uplFile.delete(); ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION); } } else uplFile.write(pathToSave); } } catch (Exception e) { ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR); } // System.out.println("newFilename2: " + newFilename); } } out.print(ur); out.flush(); out.close(); logger.debug("Exiting Connector#doPost"); }
From source file:MyPack.AddAuctionItems.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./*from w w w. java2s . c om*/ * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { config = getServletConfig(); System.out.println("Inside insert code"); try { session = request.getSession(); int regid = (Integer) session.getAttribute("regid"); String itemname = ""; int itemprice = 0; String date = ""; String time = ""; int catid = 0; String itempic = ""; boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { } else { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null; try { items = upload.parseRequest(request); } catch (FileUploadException ex) { Logger.getLogger(AddAuctionItems.class.getName()).log(Level.SEVERE, null, ex); } Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); if (name.equals("itemname")) { itemname = value; // count1=1; System.out.println("name = " + itemname); } if (name.equals("itemprice")) { itemprice = Integer.parseInt(value); // count2=2; System.out.println("price = " + itemprice); } if (name.equals("itemdate")) { date = value; // count5=5; System.out.println("date = " + date); } if (name.equals("itemtime")) { time = value; // count3=3; System.out.println("time = " + time); } if (name.equals("selectedRecord")) { // count4=4; catid = Integer.parseInt(value); System.out.println("emp_emailid = " + catid); } } else { try { itempic = item.getName(); System.out.println("itemName============" + itempic); File savedFile = new File( config.getServletContext().getRealPath("/") + "../../web/upimage\\" + itempic); // System.out.println(config.getServletContext().getRealPath("/") + "upimage\\" + itempic); item.write(savedFile); } catch (Exception e) { e.printStackTrace(); } } } } PrintWriter out = response.getWriter(); DBConnection Db = new DBConnection(); String sql = "insert into tb_auction_items values(null,'" + itemname + "','" + itemprice + "','" + date + "','" + time + "','0','" + catid + "','" + regid + "','" + itempic + "')"; System.out.println(sql); int row = Db.UpdateQuery(sql); if (row > 0) { out.print("<script>alert('Successulyy added');</script>"); response.sendRedirect("viewitems"); // request.getRequestDispatcher("viewitems").include(request, response); } else { request.getRequestDispatcher("AddAuctionItemss.jsp").forward(request, response); out.print("<script>alert('Failed to Update');</script>"); } Db.Close(); } catch (Exception ex) { Logger.getLogger(AddAuctionItems.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:hu.sztaki.lpds.submitter.service.jobstatus.JobStatusServlet.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request/* w w w .j a v a 2 s. co m*/ * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //System.out.println("JobStatusServlet.processRequest called !!!!!!!!!!!!!!!"); String uid = ""; String jobid = ""; int status = -1; //sysLog(jobid, "JobStatusServlet * * * JobStatusServlet called"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { DiskFileItemFactory fileItemFactory = new DiskFileItemFactory(); fileItemFactory.setSizeThreshold(30 * 1024 * 1024); //1 MB fileItemFactory.setRepository(new File(Base.getI().getPath()));//new File() ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory); try { List items = uploadHandler.parseRequest(request); Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) { // out.println("Field Name = " + item.getFieldName() + ", Value = " + item.getString()); // System.out.println("JobStatusServlet: Field Name = " + item.getFieldName() + ", Value = " + item.getString()); if ("uid".equals("" + item.getFieldName())) { uid = item.getString(); } else if ("jobid".equals("" + item.getFieldName())) { jobid = item.getString(); } else if ("status".equals("" + item.getFieldName())) { status = Integer.parseInt(item.getString()); } } else { // System.out.println("JobStatusServlet: Field Name = " + item.getFieldName() // + ", File Name = " + item.getName() // + ", Content type = " + item.getContentType() // + ", File Size = " + item.getSize()); // out.println("Field Name = " + item.getFieldName() // + ", File Name = " + item.getName() // + ", Content type = " + item.getContentType() // + ", File Size = " + item.getSize()); // outfiles.add(item.getName()); if (status == 1 && GStatusHandler.getI().setStatus(uid, jobid, status)) {//if status == uploading(1) and userid->jobid File destinationDir = new File(Base.getI().getPath() + jobid + "/outputs"); File file = new File(destinationDir, item.getName()); item.write(file); } else { System.out.println("ILLEGAL ACCESS or Deleted job!? uid:" + uid + " jobid:" + jobid); } } } } catch (FileUploadException ex) { sysLog(jobid, "JobStatusServlet: Error encountered while parsing the request: " + ex + " --> try getparameters"); //ex.printStackTrace(); uid = request.getParameter("uid"); jobid = request.getParameter("jobid"); try { if (request.getParameter("status") != null) { status = Integer.parseInt(request.getParameter("status")); if (status == 6) { status = 66; } else if (status == 7) { status = 77; } //running status = 55 } } catch (Exception ee) { //ee.printStackTrace(); } } catch (Exception ex) { sysLog(jobid, "JobStatusServlet:Error encountered while uploading file: " + ex); //ex.printStackTrace(); } sysLog(jobid, " JobStatusServlet: status=" + status + " userid=" + uid); if (status != -1) { GStatusHandler.getI().setStatus(uid, jobid, status); } //RequestDispatcher comp = null; //comp = request.getRequestDispatcher("hiba.jsp"); // comp.forward(request, response); } catch (Exception ee) { ee.printStackTrace(); } finally { out.close(); } //GStatusHandler.getI().getJob(jobID) }
From source file:com.silverpeas.thumbnail.servlets.ThumbnailRequestRouter.java
private ThumbnailDetail saveFile(List<FileItem> parameters) throws Exception { SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_ENTER_METHOD"); ResourceLocator settings = new ResourceLocator("com.stratelia.webactiv.util.attachment.Attachment", ""); boolean runOnUnix = settings.getBoolean("runOnSolaris", false); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "runOnUnix = " + runOnUnix); String componentId = FileUploadUtil.getParameter(parameters, "ComponentId"); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "componentId = " + componentId); String id = FileUploadUtil.getParameter(parameters, "ObjectId"); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "id = " + id); FileItem item = FileUploadUtil.getFile(parameters, "OriginalFile"); String fullFileName;// w w w .j ava2 s. c om if (!item.isFormField()) { fullFileName = item.getName(); if (fullFileName != null && runOnUnix) { fullFileName = fullFileName.replace('\\', File.separatorChar); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "fullFileName on Unix = " + fullFileName); } assert fullFileName != null; String fileName = fullFileName.substring(fullFileName.lastIndexOf(File.separator) + 1, fullFileName.length()); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "file = " + fileName); long size = item.getSize(); SilverTrace.info("thumbnail", "ThumbnailRequestRouter.createAttachment", "root.MSG_GEN_PARAM_VALUE", "size = " + size); String type = null; if (fileName.lastIndexOf(".") != -1) { type = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()); } if (type == null || type.length() == 0) { throw new ThumbnailRuntimeException("ThumbnailRequestRouter.saveFile()", SilverpeasRuntimeException.ERROR, "thumbnail_MSG_TYPE_KO"); } String physicalName = System.currentTimeMillis() + "." + type; String filePath = FileRepositoryManager.getAbsolutePath(componentId) + publicationSettings.getString("imagesSubDirectory") + File.separator + physicalName; File file = new File(filePath); if (!file.exists()) { FileFolderManager.createFolder(file.getParentFile()); file.createNewFile(); } item.write(file); String mimeType = FileUtil.getMimeType(fileName); String objectType = FileUploadUtil.getParameter(parameters, "ObjectType"); ThumbnailDetail thumbToAdd = new ThumbnailDetail(componentId, Integer.valueOf(id), Integer.valueOf(objectType)); thumbToAdd.setOriginalFileName(physicalName); thumbToAdd.setMimeType(mimeType); return thumbToAdd; } return null; }
From source file:Com.Dispatcher.java
/** * Handles the HTTP <code>POST</code> method. * * @param request servlet request/*from ww w.j a va 2 s . com*/ * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { File file; Boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { return; } // Create a session object if it is already not created. HttpSession session = request.getSession(true); // Get session creation time. Date createTime = new Date(session.getCreationTime()); // Get last access time of this web page. Date lastAccessTime = new Date(session.getLastAccessedTime()); String visitCountKey = new String("visitCount"); String userIDKey = new String("userID"); String userID = new String("ABCD"); Integer visitCount = (Integer) session.getAttribute(visitCountKey); // Check if this is new comer on your web page. if (visitCount == null) { session.setAttribute(userIDKey, userID); } else { visitCount++; userID = (String) session.getAttribute(userIDKey); } session.setAttribute(visitCountKey, visitCount); DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File(fileRepository)); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // maximum file size to be uploaded. upload.setSizeMax(maxFileSize); try { // Parse the request to get file items List fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { // Get the uploaded file parameters String fieldName = fi.getFieldName(); String fileName = fi.getName(); String contentType = fi.getContentType(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); // Write the file to server in "/uploads/{sessionID}/" String clientDataPath = getServletContext().getInitParameter("clientFolder"); // TODO clear the client folder here // FileUtils.deleteDirectory(new File("clientDataPath")); if (fileName.lastIndexOf("\\") >= 0) { File input = new File(clientDataPath + session.getId() + "/input/"); input.mkdirs(); File output = new File(clientDataPath + session.getId() + "/output/"); output.mkdirs(); session.setAttribute("inputFolder", clientDataPath + session.getId() + "/input/"); session.setAttribute("outputFolder", clientDataPath + session.getId() + "/output/"); file = new File( input.getAbsolutePath() + "/" + fileName.substring(fileName.lastIndexOf("/"))); } else { File input = new File(clientDataPath + session.getId() + "/input/"); input.mkdirs(); File output = new File(clientDataPath + session.getId() + "/output/"); output.mkdirs(); session.setAttribute("inputFolder", clientDataPath + session.getId() + "/input/"); session.setAttribute("outputFolder", clientDataPath + session.getId() + "/output/"); file = new File( input.getAbsolutePath() + "/" + fileName.substring(fileName.lastIndexOf("/") + 1)); } fi.write(file); } } } catch (Exception ex) { System.out.println("Failure: File Upload"); System.out.println(ex); //TODO show error page for website } System.out.println("file uploaded"); // TODO make the fileRepository Folder generic so it doesnt need to be changed // for each migration of the program to a different server File input = new File((String) session.getAttribute("inputFolder")); File output = new File((String) session.getAttribute("outputFolder")); File profile = new File(getServletContext().getInitParameter("profileFolder")); File hintsXML = new File(getServletContext().getInitParameter("hintsXML")); System.out.println("folders created"); Controller controller = new Controller(input, output, profile, hintsXML); HashMap initialArtifacts = controller.initialArtifacts(); session.setAttribute("Controller", controller); System.out.println("Initialisation of profiles for session (" + session.getId() + ") is complete\n" + "Awaiting user to update parameters to generate next generation of results.\n"); String json = new Gson().toJson(initialArtifacts); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(json); }
From source file:hu.sztaki.lpds.pgportal.portlets.workflow.EasyWorkflowPortlet.java
@Override public void doUpload(ActionRequest request, ActionResponse response) { PortletContext context = getPortletContext(); context.log("[FileUploadPortlet] doUpload() called"); try {/*from ww w .j a v a2 s . com*/ DiskFileItemFactory factory = new DiskFileItemFactory(); PortletFileUpload pfu = new PortletFileUpload(factory); pfu.setSizeMax(uploadMaxSize); // Maximum upload size pfu.setProgressListener((ProgressListener) new FileUploadProgressListener()); PortletSession ps = request.getPortletSession(); if (ps.getAttribute("uploaded") == null) ps.setAttribute("uploaded", new Vector<String>()); ps.setAttribute("upload", pfu); //get the FileItems String fieldName = null; List fileItems = pfu.parseRequest(request); Iterator iter = fileItems.iterator(); File serverSideFile = null; while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); // retrieve hidden parameters if item is a form field if (item.isFormField()) { fieldName = item.getFieldName(); } else { // item is not a form field, do file upload Hashtable<String, ProgressListener> tmp = (Hashtable<String, ProgressListener>) ps .getAttribute("uploads", ps.APPLICATION_SCOPE); String s = item.getName(); s = FilenameUtils.getName(s); ps.setAttribute("uploading", s); String tempDir = System.getProperty("java.io.tmpdir") + "/uploads/" + request.getRemoteUser(); File f = new File(tempDir); if (!f.exists()) f.mkdirs(); serverSideFile = new File(tempDir, s); item.write(serverSideFile); item.delete(); context.log("[FileUploadPortlet] - file " + s + " uploaded successfully to " + tempDir); // file upload to storage try { Hashtable h = new Hashtable(); h.put("portalURL", PropertyLoader.getInstance().getProperty("service.url")); h.put("userID", request.getRemoteUser()); String uploadField = ""; // retrieve hidden parameters if item is a form field for (FileItem item0 : (List<FileItem>) fileItems) { if (item0.isFormField()) h.put(item0.getFieldName(), item0.getString()); else uploadField = item0.getFieldName(); } Hashtable hsh = new Hashtable(); ServiceType st = InformationBase.getI().getService("storage", "portal", hsh, new Vector()); PortalStorageClient psc = (PortalStorageClient) Class.forName(st.getClientObject()) .newInstance(); psc.setServiceURL(st.getServiceUrl()); psc.setServiceID("/upload"); if (serverSideFile != null) { psc.fileUpload(serverSideFile, uploadField, h); } } catch (Exception ex) { response.setRenderParameter("full", "error.upload"); ex.printStackTrace(); return; } ((Vector<String>) ps.getAttribute("uploaded")).add(s); } } // ps.removeAttribute("uploads",ps.APPLICATION_SCOPE); ps.setAttribute("finaluploads", ""); } catch (SizeLimitExceededException see) { response.setRenderParameter("full", "error.upload.sizelimit"); request.getPortletSession().setAttribute("finaluploads", ""); see.printStackTrace(); context.log("[FileUploadPortlet] - failed to upload file - " + see.toString()); return; } catch (FileUploadException fue) { response.setRenderParameter("full", "error.upload"); fue.printStackTrace(); context.log("[FileUploadPortlet] - failed to upload file - " + fue.toString()); return; } catch (Exception e) { e.printStackTrace(); response.setRenderParameter("full", "error.exception"); context.log("[FileUploadPortlet] - failed to upload file - " + e.toString()); return; } response.setRenderParameter("full", "action.succesfull"); }
From source file:com.axway.ats.testexplorer.pages.testcase.attachments.AttachmentsServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Object checkContextAttribute = request.getSession().getServletContext() .getAttribute(ContextListener.getAttachedFilesDir()); // check if ats-attached-files property is set if (checkContextAttribute == null) { LOG.error(//w w w . java2 s .c o m "No attached files could be attached. \nPossible reason could be Tomcat 'CATALINA_HOME' or 'CATALINA_BASE' is not set."); } else { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); // Check that we have a file upload request if (!ServletFileUpload.isMultipartContent(request)) { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet upload</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>No file uploaded</p>"); out.println("</body>"); out.println("</html>"); return; } repoFilesDir = checkContextAttribute.toString(); DiskFileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // fileitem containing information about the attached file FileItem fileItem = null; FileItem currentElement = null; String dbName = ""; String attachedFile = ""; int runId = 0; int suiteId = 0; int testcaseId = 0; try { // Parse the request to get file items. List<?> fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator<?> i = fileItems.iterator(); while (i.hasNext()) { currentElement = (FileItem) i.next(); // check if this is the attached file if ("upfile".equals(currentElement.getFieldName())) { fileItem = currentElement; attachedFile = getFileSimpleName(fileItem.getName()); if (attachedFile == null) { break; } } else if ("dbName".equals(currentElement.getFieldName())) { if (!StringUtils.isNullOrEmpty(currentElement.getString())) dbName = currentElement.getString(); } else if ("runId".equals(currentElement.getFieldName())) { runId = getIntValue(currentElement.getString()); } else if ("suiteId".equals(currentElement.getFieldName())) { suiteId = getIntValue(currentElement.getString()); } else if ("testcaseId".equals(currentElement.getFieldName())) { testcaseId = getIntValue(currentElement.getString()); } } // check if all values are valid if (!StringUtils.isNullOrEmpty(attachedFile) && !StringUtils.isNullOrEmpty(dbName) && runId > 0 && suiteId > 0 && testcaseId > 0) { // copy the attached file to the corresponding directory File file = createAttachedFileDir(attachedFile, dbName, runId, suiteId, testcaseId); fileItem.write(file); out.println("File uploaded to testcase " + testcaseId); } else { StringBuilder sb = new StringBuilder(); if (StringUtils.isNullOrEmpty(attachedFile)) { sb.append("Attached file name is null or empty!"); out.println(sb.toString()); } if (StringUtils.isNullOrEmpty(dbName)) { sb.append("Database name is null of empty!"); out.println(sb.toString()); } if (runId <= 0) { sb.append("RunId \"" + runId + "\" is not valid!"); out.println(sb.toString()); } if (suiteId <= 0) { sb.append("SuiteId \"" + suiteId + "\" is not valid!"); out.println(sb.toString()); } if (testcaseId <= 0) { sb.append("TestcaseId \"" + testcaseId + "\" is not valid!"); out.println(sb.toString()); } response.sendError(HttpServletResponse.SC_CONFLICT, sb.toString()); LOG.error("The file could not be attached to the test!"); } } catch (Exception ex) { String errMsg = ex.getMessage(); if (errMsg == null) { errMsg = ex.getClass().getSimpleName(); } response.sendError(HttpServletResponse.SC_CONFLICT, ExceptionUtils.getExceptionMsg(ex)); LOG.error("The file was unable to be attached to the testcase! ", ex); } finally { out.close(); } } }
From source file:com.silverpeas.importExportPeas.servlets.ImportDragAndDrop.java
@Override public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { SilverTrace.info("importExportPeas", "ImportDragAndDrop.doPost", "root.MSG_GEN_ENTER_METHOD"); HttpRequest request = HttpRequest.decorate(req); request.setCharacterEncoding("UTF-8"); if (!request.isContentInMultipart()) { res.getOutputStream().println("SUCCESS"); return;//from w w w . ja v a 2s . c o m } String userLanguage = null; StringBuilder result = new StringBuilder(); try { String componentId = request.getParameter("ComponentId"); String topicId = request.getParameter("TopicId"); if (!StringUtil.isDefined(topicId)) { String sessionId = request.getParameter("SessionId"); SessionManagementFactory factory = SessionManagementFactory.getFactory(); SessionManagement sessionManagement = factory.getSessionManagement(); SessionInfo session = sessionManagement.getSessionInfo(sessionId); topicId = session.getAttribute("Silverpeas_DragAndDrop_TopicId"); } String userId = request.getParameter("UserId"); userLanguage = StringUtil.isNotDefined(userId) ? I18NHelper.defaultLanguage : UserDetail.getById(userId).getUserPreferences().getLanguage(); boolean ignoreFolders = StringUtil.getBooleanValue(request.getParameter("IgnoreFolders")); boolean draftUsed = StringUtil.getBooleanValue(request.getParameter("Draft")); SilverTrace.info("importExportPeas", "Drop", "root.MSG_GEN_PARAM_VALUE", "componentId = " + componentId + " topicId = " + topicId + " userId = " + userId + " ignoreFolders = " + ignoreFolders + ", draftUsed = " + draftUsed); String savePath = FileRepositoryManager.getTemporaryPath() + "tmpupload" + File.separator + topicId + System.currentTimeMillis() + File.separator; List<FileItem> items = request.getFileItems(); for (FileItem item : items) { if (!item.isFormField()) { String fileUploadId = item.getFieldName().substring(4); String parentPath = FileUploadUtil.getParameter(items, "relpathinfo" + fileUploadId, null); String fileName = FileUploadUtil.getFileName(item); if (StringUtil.isDefined(parentPath)) { if (parentPath.endsWith(":\\")) { // special case for file on root of disk parentPath = parentPath.substring(0, parentPath.indexOf(':') + 1); } } parentPath = FileUtil.convertPathToServerOS(parentPath); SilverTrace.info("importExportPeas", "Drop.doPost", "root.MSG_GEN_PARAM_VALUE", "fileName = " + fileName); if (fileName != null) { if (fileName.contains(File.separator)) { fileName = fileName.substring(fileName.lastIndexOf(File.separatorChar)); parentPath = parentPath + File.separatorChar + fileName.substring(0, fileName.lastIndexOf(File.separatorChar)); } SilverTrace.info("importExportPeas", "Drop.doPost", "root.MSG_GEN_PARAM_VALUE", "fileName on Unix = " + fileName); } if (!ignoreFolders) { if (parentPath != null && parentPath.length() > 0) { result.append("newFolder=true&"); fileName = File.separatorChar + parentPath + File.separatorChar + fileName; } } if (!"".equals(savePath)) { File f = new File(savePath + fileName); File parent = f.getParentFile(); if (!parent.exists()) { parent.mkdirs(); } item.write(f); } } else { SilverTrace.info("importExportPeas", "Drop.doPost", "root.MSG_GEN_PARAM_VALUE", "item = " + item.getFieldName() + " - " + item.getString()); } } MassiveReport massiveReport = new MassiveReport(); UserDetail userDetail = OrganisationControllerFactory.getOrganisationController().getUserDetail(userId); try { MassiveDocumentImport massiveImporter = new MassiveDocumentImport(); ImportSettings settings = new ImportSettings(savePath, userDetail, componentId, topicId, draftUsed, true, ImportSettings.FROM_DRAGNDROP); ImportReport importReport = massiveImporter.importDocuments(settings, massiveReport); if (isDefaultClassificationModifiable(topicId, componentId)) { ComponentReport componentReport = importReport.getListComponentReport().get(0); List<MassiveReport> listMassiveReport = componentReport.getListMassiveReports(); for (MassiveReport theMassiveReport : listMassiveReport) { List<UnitReport> listMassiveUnitReport = theMassiveReport.getListUnitReports(); for (UnitReport unitReport : listMassiveUnitReport) { if (unitReport.getStatus() == UnitReport.STATUS_PUBLICATION_CREATED) { result.append("pubid=").append(unitReport.getLabel()).append("&"); } } } } } catch (ImportExportException ex) { massiveReport.setError(UnitReport.ERROR_NOT_EXISTS_OR_INACCESSIBLE_DIRECTORY); SilverpeasTransverseErrorUtil.throwTransverseErrorIfAny(ex, userLanguage); res.getOutputStream().println("ERROR"); return; } } catch (Exception e) { SilverTrace.debug("importExportPeas", "Drop.doPost", "root.MSG_GEN_PARAM_VALUE", e); final StringBuilder sb = new StringBuilder("ERROR: "); String transverseMessage = SilverpeasTransverseWebErrorUtil.performAppletAlertExceptionMessage(e, userLanguage); if (isDefined(transverseMessage)) { sb.append(transverseMessage); } else { sb.append(e.getMessage()); } res.getOutputStream().println(sb.toString()); return; } if (result.length() > 0) { res.getOutputStream().println(result.substring(0, result.length() - 1)); } else { res.getOutputStream().println("SUCCESS"); } }
From source file:com.GTDF.server.FileUploadServlet.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String rootDirectory = getServletConfig().getInitParameter("TRANSFORM_HOME"); String workDirectory = getServletConfig().getInitParameter("TRANSFORM_DIR"); String prefixDirectory = ""; boolean writeToFile = true; String returnOKMessage = "OK"; String username = ""; String authResult = ""; boolean isMultipart = ServletFileUpload.isMultipartContent(request); PrintWriter out = response.getWriter(); // Create a factory for disk-based file items if (isMultipart) { // We are uploading a file (deletes are performed by non multipart requests) FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request try {//from w ww.ja v a 2 s.com List items = upload.parseRequest(request); // Process the uploaded items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { // Hidden field containing username - check authorization if (item.getFieldName().equals("username")) { username = item.getString(); String wikiDb = getServletConfig().getInitParameter("WIKIDB"); String wikiDbUser = getServletConfig().getInitParameter("WIKIDB_USER"); String wikiDbPassword = getServletConfig().getInitParameter("WIKIDB_PASSWORD"); String wikiNoAuth = getServletConfig().getInitParameter("NOAUTH"); // v1.5 Check parameter NOAUTH WikiUserImpl wikiUser = new WikiUserImpl(); authResult = wikiUser.wikiUserVerifyDb(username, wikiDb, wikiDbUser, wikiDbPassword, wikiNoAuth); if (authResult != "LOGGED") { out.print(authResult); return; } else new File(rootDirectory + workDirectory + '/' + username).mkdirs(); } // Hidden field containing file prefix to create subdirectory if (item.getFieldName().equals("prefix")) { prefixDirectory = item.getString(); new File(rootDirectory + workDirectory + '/' + username + '/' + prefixDirectory) .mkdirs(); prefixDirectory += '/'; } } else { if (writeToFile) { String fileName = item.getName(); if (fileName != null && !fileName.equals("")) { fileName = FilenameUtils.getName(fileName); File uploadedFile = new File(rootDirectory + workDirectory + '/' + username + '/' + prefixDirectory + fileName); try { item.write(uploadedFile); String hostedOn = getServletConfig().getInitParameter("HOSTED_ON"); out.print("Infile at: " + hostedOn + workDirectory + '/' + username + '/' + prefixDirectory + fileName); } catch (Exception e) { e.printStackTrace(); } } } else { } } } } catch (FileUploadException e) { e.printStackTrace(); } } else { //Process a request to delete a file String[] paramValues = request.getParameterValues("uploadFormElement"); for (int i = 0; i < paramValues.length; i++) { String fileName = FilenameUtils.getName(paramValues[i]); File deleteFile = new File(rootDirectory + workDirectory + fileName); if (deleteFile.delete()) { out.print(returnOKMessage); } } } }
From source file:com.yeoou.fckeditor.ConnectorServlet.java
/** * Manage the <code>POST</code> requests (<code>FileUpload</code>).<br /> * /*www.j a v a 2s .c o m*/ * The servlet accepts commands sent in the following format:<br /> * <code>connector?Command=<FileUpload>&Type=<ResourceType>&CurrentFolder=<FolderPath></code> * with the file in the <code>POST</code> body.<br /> * <br> * It stores an uploaded file (renames a file if another exists with the * same name) and then returns the JavaScript callback. */ @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { logger.debug("Entering Connector#doPost"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String commandStr = request.getParameter("Command"); String typeStr = request.getParameter("Type"); String currentFolderStr = request.getParameter("CurrentFolder"); logger.debug("Parameter Command: {}", commandStr); logger.debug("Parameter Type: {}", typeStr); logger.debug("Parameter CurrentFolder: {}", currentFolderStr); UploadResponse ur; // if this is a QuickUpload request, 'commandStr' and 'currentFolderStr' // are empty if (Utils.isEmpty(commandStr) && Utils.isEmpty(currentFolderStr)) { commandStr = "QuickUpload"; currentFolderStr = "/"; } if (!RequestCycleHandler.isEnabledForFileUpload(request)) ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR, null, null, Messages.NOT_AUTHORIZED_FOR_UPLOAD); else if (!CommandHandler.isValidForPost(commandStr)) ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_COMMAND); else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr)) ur = new UploadResponse(UploadResponse.SC_ERROR, null, null, Messages.INVALID_TYPE); else if (!UtilsFile.isValidPath(currentFolderStr)) ur = UploadResponse.UR_INVALID_CURRENT_FOLDER; else { ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr); String typePath = UtilsFile.constructServerSidePath(request, resourceType); String typeDirPath = getServletContext().getRealPath(typePath); File typeDir = new File(typeDirPath); UtilsFile.checkDirAndCreate(typeDir); File currentDir = new File(typeDir, currentFolderStr); if (!currentDir.exists()) ur = UploadResponse.UR_INVALID_CURRENT_FOLDER; else { String newFilename = null; FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { upload.setHeaderEncoding("UTF-8"); List<FileItem> items = upload.parseRequest(request); // We upload only one file at the same time FileItem uplFile = items.get(0); String rawName = UtilsFile.sanitizeFileName(uplFile.getName()); String filename = FilenameUtils.getName(rawName); String baseName = FilenameUtils.removeExtension(filename); String extension = FilenameUtils.getExtension(filename); if (!ExtensionsHandler.isAllowed(resourceType, extension)) ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION); else { // construct an unique file name File pathToSave = new File(currentDir, filename); int counter = 1; while (pathToSave.exists()) { newFilename = baseName.concat("(").concat(String.valueOf(counter)).concat(")") .concat(".").concat(extension); pathToSave = new File(currentDir, newFilename); counter++; } if (Utils.isEmpty(newFilename)) ur = new UploadResponse(UploadResponse.SC_OK, UtilsResponse.constructResponseUrl(request, resourceType, currentFolderStr, true, ConnectorHandler.isFullUrl()).concat(filename)); else ur = new UploadResponse(UploadResponse.SC_RENAMED, UtilsResponse.constructResponseUrl(request, resourceType, currentFolderStr, true, ConnectorHandler.isFullUrl()).concat(newFilename), newFilename); // secure image check if (resourceType.equals(ResourceTypeHandler.IMAGE) && ConnectorHandler.isSecureImageUploads()) { if (UtilsFile.isImage(uplFile.getInputStream())) uplFile.write(pathToSave); else { uplFile.delete(); ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION); } } else uplFile.write(pathToSave); } } catch (Exception e) { ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR); } } } out.print(ur); out.flush(); out.close(); logger.debug("Exiting Connector#doPost"); }