Example usage for org.apache.commons.fileupload FileItem write

List of usage examples for org.apache.commons.fileupload FileItem write

Introduction

In this page you can find the example usage for org.apache.commons.fileupload FileItem write.

Prototype

void write(File file) throws Exception;

Source Link

Document

A convenience method to write an uploaded item to disk.

Usage

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=&lt;FileUpload&gt;&Type=&lt;ResourceType&gt;&CurrentFolder=&lt;FolderPath&gt;</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=&lt;FileUpload&gt;&Type=&lt;ResourceType&gt;&CurrentFolder=&lt;FolderPath&gt;</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");
}