Example usage for org.apache.commons.fileupload.servlet ServletFileUpload ServletFileUpload

List of usage examples for org.apache.commons.fileupload.servlet ServletFileUpload ServletFileUpload

Introduction

In this page you can find the example usage for org.apache.commons.fileupload.servlet ServletFileUpload ServletFileUpload.

Prototype

public ServletFileUpload(FileItemFactory fileItemFactory) 

Source Link

Document

Constructs an instance of this class which uses the supplied factory to create FileItem instances.

Usage

From source file:game.com.HandleUploadFileServlet.java

private void handle(HttpServletRequest request, AjaxResponseEntity responseObject) throws Exception {
    boolean isMultipart;
    String filePath;/* w  w  w  .  ja  v a 2s  . c  o  m*/
    int maxFileSize = 4 * 1024 * 1024;
    int maxMemSize = 4 * 1024 * 1024;
    File file;

    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("/tmp"));

    // Create a new file upload handler
    ServletFileUpload upload = new ServletFileUpload(factory);
    // maximum file size to be uploaded.
    upload.setSizeMax(maxFileSize);
    Map<String, List<FileItem>> postData = upload.parseParameterMap(request);
    if (postData.get("path") == null) {
        responseObject.returnCode = 0;
        responseObject.returnMessage = "invalid request";
        return;
    }
    String path = postData.get("path").get(0).getString();
    if (path == null) {
        responseObject.returnCode = 0;
        responseObject.returnMessage = "invalid request";
        return;
    }
    File folder = new File(path);
    if (!folder.exists()) {
        responseObject.returnCode = 0;
        responseObject.returnMessage = "path not exist";
        return;
    }
    if (folder.getAbsolutePath().startsWith(AppConfig.OPENSHIFT_DATA_DIR) == false) {
        responseObject.returnCode = 0;
        responseObject.returnMessage = "invalid path";
        return;
    }
    try {
        // Parse the request to get file items.
        List<FileItem> fileItems = postData.get("uploadfile");
        // Process the uploaded file items
        for (FileItem fi : fileItems) {
            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
                file = new File(path + "/" + fi.getName());
                fi.write(file);
                logger.info("upload " + file.getAbsolutePath());
            } else {
                logger.info("isFormField " + fi.getFieldName());
            }
        }

        responseObject.returnCode = 1;
        responseObject.returnMessage = "success";

    } catch (Exception ex) {
        logger.error(ex.getMessage(), ex);
    }
}

From source file:ned.bcvs.fileupload.ElectionPartyFileUploadServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, java.io.IOException {
    // Check that we have a file upload request
    isMultipart = ServletFileUpload.isMultipartContent(request);
    response.setContentType("text/html");
    java.io.PrintWriter out = response.getWriter();
    if (!isMultipart) {
        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;/*from  w  w w.  j  ava2s .  co m*/
    }
    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(
            "D:/glassfish12October/glassfish-4.0/glassfish4/" + "glassfish/domains/domain1/applications/temp"));

    // 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();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet upload</title>");
        out.println("</head>");
        out.println("<body>");
        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            if (!fi.isFormField()) {
                // Get the uploaded file parameters
                String fieldName = fi.getFieldName();
                fileName = fi.getName();
                String contentType = fi.getContentType();
                boolean isInMemory = fi.isInMemory();
                long sizeInBytes = fi.getSize();
                // Write the file
                if (fileName.lastIndexOf("\\") >= 0) {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\")));
                } else {
                    file = new File(filePath + fileName.substring(fileName.lastIndexOf("\\") + 1));
                }
                fi.write(file);
                out.println("Uploaded Filename: " + fileName + "<br>");
            }
        }

        //calling the ejb method to save voter.csv file to data base
        out.println(upbean.fileDbUploader(filePath + fileName, "electionparty"));
        out.println("</body>");
        out.println("</html>");
    } catch (Exception ex) {
        System.out.println(ex);
    }
}

From source file:edu.lafayette.metadb.web.dataman.ImportAdminDesc.java

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*///from  w  w  w.j  a  va2 s . c  om

@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    PrintWriter out = response.getWriter();
    String delimiter = "comma";
    boolean replaceEntity = false;
    String projname = (String) request.getSession(false).getAttribute(Global.SESSION_PROJECT);
    JSONObject output = new JSONObject();

    try {
        if (ServletFileUpload.isMultipartContent(request)) {
            ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
            List fileItemsList = servletFileUpload.parseRequest(request);
            DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
            diskFileItemFactory.setSizeThreshold(40960); /* the unit is bytes */

            Iterator it = fileItemsList.iterator();
            InputStream input = null;
            while (it.hasNext()) {
                FileItem fileItem = (FileItem) it.next();

                if (fileItem.isFormField()) {
                    /* The file item contains a simple name-value pair of a form field */
                    if (fileItem.getFieldName().equals("delimiter"))
                        delimiter = fileItem.getString();
                    else if (fileItem.getFieldName().equals("replace-entity"))
                        replaceEntity = true;
                } else {
                    input = fileItem.getInputStream();
                }
            }

            String delimiterType = "csv";
            if (delimiter.equals("tab")) {
                delimiterType = "tsv";
            }
            if (input != null) {
                Result res = DataImporter.importFile(delimiterType, projname, input, replaceEntity);
                if (res.isSuccess()) {
                    HttpSession session = request.getSession(false);
                    if (session != null) {
                        String userName = (String) session.getAttribute(Global.SESSION_USERNAME);
                        SysLogDAO.log(userName, Global.SYSLOG_PROJECT,
                                "Data imported into project " + projname);
                    }
                    output.put("message", "Data import successfully");
                } else {
                    output.put("message", "The following fields have been changed:");
                    StringBuilder fields = new StringBuilder();
                    for (String field : (ArrayList<String>) res.getData())
                        fields.append(field + ',');
                    output.put("fields", fields.toString());
                }
                output.put("success", res.isSuccess());
            } else {
                output.put("success", false);
                output.put("message", "Null data");
            }
        } else {
            output.put("success", false);
            output.put("message", "Form is not multi-part");
        }
    } catch (Exception e) {
        MetaDbHelper.logEvent(e);
    }
    out.print(output);
    out.flush();
}

From source file:com.sa.osgi.jetty.UploadServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//  www .  ja v  a 2s .c o m
 *
 * @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 {
    // Check that we have a file upload request
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);

    if (isMultipart) {
        // Create a factory for disk-based file items
        DiskFileItemFactory factory = new DiskFileItemFactory();

        // Configure a repository (to ensure a secure temp location is used)
        ServletContext servletContext = this.getServletConfig().getServletContext();
        String ss = servletContext.getInitParameter("javax.servlet.context.tempdir");
        File repository = new File("/tmp");//(File) servletContext.getAttribute("javax.servlet.context.tempdir");
        factory.setRepository(repository);
        System.out.println("context var: " + ss);

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);

        try {
            // Parse the request
            List<FileItem> items = upload.parseRequest(request);
            Iterator<FileItem> iter = items.iterator();
            while (iter.hasNext()) {
                FileItem item = iter.next();

                if (item.isFormField()) {
                    //                    processFormField(item);
                } else {
                    processUploadedFile(item);
                }
            }
        } catch (FileUploadException ex) {
            Logger.getLogger(UploadServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    response.sendRedirect("/welcome");

    //        RequestDispatcher dis = request.getRequestDispatcher("/welcome");
    //        dis.forward(request, response);

}

From source file:Controlador.Contr_Seleccion.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*w  w w  . j a v a2 s  .  co m*/
 *
 * @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 {
    /*Se detalla el contenido que tendra el servlet*/
    response.setContentType("text/html;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");
    /*Se crea una variable para la sesion*/
    HttpSession session = request.getSession(true);

    boolean b;
    try {
        /*Se declaran las variables necesarias*/
        Cls_Seleccion sel = new Cls_Seleccion();
        String Codigo = "", Mensaje = "", Nombre = "", Tipo = "", Imagen = "", url, Peti;
        String urlsalidaimg;
        urlsalidaimg = "/media/santiago/Santiago/IMGTE/";
        //urlsalidaimg = "D:\\IMGTE\\";
        String urlimgservidor = this.getServletContext().getRealPath("/Libs/Customs/images/Seleccion");
        /*FileItemFactory es una interfaz para crear FileItem*/
        FileItemFactory file_factory = new DiskFileItemFactory();

        /*ServletFileUpload esta clase convierte los input file a FileItem*/
        ServletFileUpload servlet_up = new ServletFileUpload(file_factory);
        /*sacando los FileItem del ServletFileUpload en una lista */
        servlet_up.setHeaderEncoding("UTF-8");
        List items = servlet_up.parseRequest(request);
        Iterator it = items.iterator();

        /*Se evalua cada una de las posibles peticiones y los posibles campos que envien*/
        while (it.hasNext()) {
            FileItem item = (FileItem) it.next();
            if (item.isFormField()) {
                //Plain request parameters will come here. 

                String name = item.getFieldName();
                if (name.equals("Codigo")) {
                    /*Se guarda el campo en la clase*/
                    sel.setCodigo(item.getString());
                } else if (name.equals("Nombre")) {
                    /**
                     * Se guarda el campo en la clase
                     */
                    sel.setNombre(item.getString());
                } else if (name.equals("Tipo")) {
                    /**
                     * Se guarda el campo en la clase
                     */
                    sel.setTipo(item.getString());
                } else if (name.equals("Estado")) {
                    /**
                     * Se guarda el campo en la clase
                     */
                    sel.setEstado(item.getString());
                } else if (name.equals("RegistrarSeleccion")) {
                    /*Se evalua si se mando una iamgen, cuando se va a registrar un evento*/
                    if (!sel.getImagen().equals("")) {
                        /*Si se envia una imagen obtiene la imagen para guardarla en el server luego*/
                        File img = new File(sel.getImagen());
                        /*Se ejecuta el metodo de registrar usuario que se encuentra, en la clase modelo
                         con los datos que se encuentran en la clase*/

                        b = sel.setRegistrarSeleccion(sel.getNombre(), sel.getTipo(), sel.getTypeImg());
                        if (b) {
                            /*Se guarda un mensaje mediante las sesiones
                             y se redirecciona*/
                            File imagedb = new File(urlimgservidor + "/" + sel.getCodigo() + sel.getTypeImg());
                            img.renameTo(imagedb);
                            session.setAttribute("Mensaje",
                                    "El gusto o ambiente ha sido registrado correctamente.");
                            session.setAttribute("TipoMensaje", "Dio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        } else {
                            img.delete();
                            /*Se guarda un mensaje de error mediante las sesiones
                             y se redirecciona*/
                            session.setAttribute("Mensaje", sel.getMensaje());
                            session.setAttribute("TipoMensaje", "NODio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        }
                    } else {
                        /*Se guarda un mensaje de error mediante las sesiones
                         y se redirecciona*/
                        session.setAttribute("Mensaje",
                                "Seleccione una imagen, para registrar el ambiente o gusto.");
                        session.setAttribute("TipoMensaje", "NODio");
                    }
                } else if (name.equals("ModificarSeleccion")) {
                    if (sel.getImagen().equals("")) {
                        /*Se ejecuta el metodo de actualizar los datos de la seleccion usuario que se encuentra, en la clase modelo
                         con los datos que se encuentran en la clase*/
                        b = sel.actualizardatosSeleccion(sel.getCodigo(), sel.getNombre(), sel.getTipo(),
                                sel.getEstado());
                        if (b) {
                            /*Se guarda un mensaje mediante las sesiones
                             y se redirecciona*/
                            session.setAttribute("Mensaje",
                                    "El gusto o ambiente ha sido registrada correctamente.");
                            session.setAttribute("TipoMensaje", "Dio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        } else {
                            /*Se guarda un mensaje mediante las sesiones
                             y se redirecciona*/
                            session.setAttribute("Mensaje", sel.getMensaje());
                            session.setAttribute("TipoMensaje", "NODio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        }
                    } else {
                        /*Se ejecuta el metodo de actualizar los datos de la seleccion usuario que se encuentra, en la clase modelo
                         con los datos que se encuentran en la clase*/
                        File img = new File(sel.getImagen());
                        b = sel.actualizardatosSeleccion(sel.getCodigo(), sel.getNombre(), sel.getTipo(),
                                sel.getTypeImg(), sel.getEstado());
                        if (b) {
                            File imagedb = new File(urlimgservidor + "/" + sel.getCodigo() + sel.getTypeImg());
                            img.renameTo(imagedb);
                            /*Se guarda un mensaje mediante las sesiones
                             y se redirecciona*/
                            session.setAttribute("Mensaje",
                                    "El gusto o ambiente ha sido modificado correctamente.");
                            session.setAttribute("TipoMensaje", "Dio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        } else {
                            img.delete();
                            /*Se guarda un mensaje mediante las sesiones
                             y se redirecciona*/
                            session.setAttribute("Mensaje", sel.getMensaje());
                            session.setAttribute("TipoMensaje", "NODio");
                            url = "View/ConsultaSeleccion.jsp";
                            response.sendRedirect(url);
                        }
                    }
                }

            } else {
                if (!item.getName().equals("")) {
                    //uploaded files will come here.
                    FileItem file = item;
                    String fieldName = item.getFieldName();
                    String fileName = item.getName();
                    String contentType = item.getContentType();
                    boolean isInMemory = item.isInMemory();
                    long sizeInBytes = item.getSize();

                    if (sizeInBytes > 1000000) {
                        /*Se muestra un mensaje en caso de pesar mas de 3 MB*/
                        session.setAttribute("Mensaje", "El tamao lmite de la imagen es: 1 MB");
                        session.setAttribute("TipoMensaje", "NODio");
                        /*Se redirecciona*/
                        response.sendRedirect("View/ConsultaSeleccion.jsp");
                    } else {
                        if (contentType.indexOf("jpeg") > 0 || contentType.indexOf("png") > 0) {
                            if (contentType.indexOf("jpeg") > 0) {
                                contentType = ".jpg";
                            } else {
                                contentType = ".png";
                            }
                            /*Se crea la imagne*/
                            File archivo_server = new File(urlimgservidor + "/" + item.getName());
                            /*Se guardael nombre y tipo de imagen en la clase*/
                            sel.setImagen(urlimgservidor + "/" + item.getName());
                            sel.setTypeImg(contentType);
                            /*Se guarda la imagen*/
                            item.write(archivo_server);
                        } else {
                            session.setAttribute("Mensaje", "Solo se pueden registrar imagenes JPG o PNG");
                            session.setAttribute("TipoMensaje", "NODio");
                        }
                    }
                } else {
                    /*Se guarda el url de la imagen en la clase*/
                    sel.setImagen("");
                }
            }
        }

        /*Se redirecciona sino se recive ninguna peticion*/
        response.sendRedirect("View/index.jsp");
    } catch (FileUploadException ex) {
        /*Se muestra un mensaje en caso de error*/
        System.out.print(ex.getMessage().toString());
    } catch (Exception ex) {
        /*Se muestra un mensaje en caso de error*/
        Logger.getLogger(Contr_Seleccion.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:com.tc.webshell.servlets.Upload.java

/**
  * Processes requests for both HTTP/*from   w w  w. j av  a  2  s.  c  o  m*/
  * <code>GET</code> and
  * <code>POST</code> methods.
  *
  * @param request servlet request
  * @param response servlet response
  * @throws ServletException if a servlet-specific error occurs
  * @throws IOException if an I/O error occurs
  */

@SuppressWarnings("unchecked")
protected void processRequest(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {

    res.setContentType("application/json");

    DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();

    ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);

    upload.setFileSizeMax(60000000);

    // Parse the request
    try {
        Database db = ContextInfo.getUserDatabase();

        for (FileItem item : (List<FileItem>) upload.parseRequest(req)) {
            if (!item.isFormField()) {

                InputStream in = item.getInputStream();

                File file = this.createTempFile("upload", item.getName());

                OutputStream fout = new FileOutputStream(file);

                try {
                    byte[] bytes = IOUtils.toByteArray(in);

                    IOUtils.write(bytes, fout);

                    Map<String, String> queryMap = XSPUtils.getQueryMap(req.getQueryString());

                    Document doc = null;

                    if (queryMap.containsKey("documentId")) {
                        doc = new DocFactory().attachToDocument(db, queryMap.get("documentId"), file);
                    } else {
                        doc = new DocFactory().buildDocument(req, db, file);
                    }

                    doc.save();

                    Prompt prompt = new Prompt();

                    prompt.setMessage("file uploaded successfully");

                    prompt.setTitle("info");

                    prompt.addProperty("noteId", doc.getNoteID());

                    prompt.addProperty("unid", doc.getUniversalID());

                    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd G 'at' HH:mm:ss z");

                    String strdate = formatter.format(doc.getCreated().toJavaDate());

                    prompt.addProperty("created", strdate);

                    Vector<Item> items = doc.getItems();
                    for (Item notesItem : items) {
                        prompt.addProperty(notesItem.getName(), notesItem.getText());
                    }

                    String json = MapperFactory.mapper().writeValueAsString(prompt);

                    this.compressResponse(req, res, json);

                    doc.recycle();

                } finally {
                    in.close();

                    if (fout != null) {
                        fout.close();
                        file.delete();//make sure we cleanup
                    }
                }
            } else {
                //
            }
            break;

        }
    } catch (Exception e) {
        logger.log(Level.SEVERE, null, e);

    } finally {
        res.getOutputStream().close();

    }

}

From source file:com.agapsys.web.toolkit.services.UploadService.java

private synchronized void __int() {
    if (uploadServlet == null) {
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(0); // <--All files will be written to disk
        factory.setRepository(getTemporaryDirectory());

        uploadServlet = new ServletFileUpload(factory);
        uploadServlet.setSizeMax(getTotalMaxSize());
        uploadServlet.setFileSizeMax(getMaxFileSize());
    }/*from  ww  w  . j  a  va 2 s  . c o m*/
}

From source file:com.krawler.esp.servlets.fileUploadXLS.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 .  com*/
 * @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 {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    JSONObject jobj = new JSONObject();
    try {
        jobj.put("success", true);
        FileItemFactory factory = new DiskFileItemFactory(4096, new File("/tmp"));
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(10000000);
        List fileItems = upload.parseRequest(request);
        Iterator i = fileItems.iterator();
        String destinationDirectory = StorageHandler.GetDocStorePath() + "xlsfiles";
        String fileName = null;
        while (i.hasNext()) {
            FileItem fi = (FileItem) i.next();
            if (fi.isFormField())
                continue;
            fileName = fi.getName();

            fi.write(new File(destinationDirectory, fileName));
        }

        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(destinationDirectory + "/" + fileName));
        HSSFWorkbook wb = new HSSFWorkbook(fs);
        int count = wb.getNumberOfSheets();
        JSONArray jArr = new JSONArray();
        for (int x = 0; x < count; x++) {
            JSONObject obj = new JSONObject();
            obj.put("name", wb.getSheetName(x));
            obj.put("index", x);
            jArr.put(obj);
        }
        jobj.put("file", destinationDirectory + "/" + fileName);
        jobj.put("data", jArr);
        jobj.put("msg", "Image has been successfully uploaded");
        jobj.put("lsuccess", true);
        jobj.put("valid", true);
    } catch (Exception e) {
        Logger.getLogger(fileUploadXLS.class.getName()).log(Level.SEVERE, null, e);
        try {
            jobj.put("msg", e.getMessage());
            jobj.put("lsuccess", false);
            jobj.put("valid", true);
        } catch (Exception ex) {
        }
    } finally {
        out.println(jobj);
    }
}

From source file:com.lock.unlockInfo.servlet.SubmitUnlockImg.java

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    HttpResponseModel responseModel = new HttpResponseModel();
    try {//from www  . j a v a2s .  c  o  m
        boolean isMultipart = ServletFileUpload.isMultipartContent(request); // ???
        if (isMultipart) {
            Hashtable<String, String> htSubmitParam = new Hashtable<String, String>(); // ??
            List<String> fileList = new ArrayList<String>();// 

            // DiskFileItemFactory??
            // ????List
            // list???
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List<FileItem> items = upload.parseRequest(request);
            Iterator<FileItem> iterator = items.iterator();
            while (iterator.hasNext()) {
                FileItem item = iterator.next();
                if (item.isFormField()) {
                    // ?
                    String sFieldName = item.getFieldName();
                    String sFieldValue = item.getString("UTF-8");
                    htSubmitParam.put(sFieldName, sFieldValue);
                } else {
                    // ,???
                    String newFileName = System.currentTimeMillis() + "_" + UUID.randomUUID().toString()
                            + ".jpg";
                    File filePath = new File(
                            getServletConfig().getServletContext().getRealPath(Constants.File_Upload));
                    if (!filePath.exists()) {
                        filePath.mkdirs();
                    }
                    File file = new File(filePath, newFileName);
                    if (!file.exists()) {
                        file.createNewFile();
                    }
                    //?
                    BufferedInputStream bis = new BufferedInputStream(item.getInputStream());
                    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
                    byte[] b = new byte[1024];
                    int length = 0;
                    while ((length = bis.read(b)) > 0) {
                        bos.write(b, 0, length);
                    }
                    bos.close();
                    bis.close();
                    //?url
                    String fileUrl = request.getRequestURL().toString();
                    fileUrl = fileUrl.substring(0, fileUrl.lastIndexOf("/")); //?URL
                    fileUrl = fileUrl + Constants.File_Upload + "/" + newFileName;
                    /**/
                    fileList.add(fileUrl);
                }
            }

            //
            String unlockInfoId = htSubmitParam.get("UnlockInfoId");
            String imgType = htSubmitParam.get("ImgType");
            String newFileUrl = fileList.get(0);

            UnlockInfoService unlockInfoService = (UnlockInfoService) context.getBean("unlockInfoService");
            UnlockInfo unlockInfo = unlockInfoService.queryByPK(Long.valueOf(unlockInfoId));
            if (imgType.equals("customerIdImg")) {
                unlockInfo.setCustomerIdImg(newFileUrl);
            } else if (imgType.equals("customerDrivingLicenseImg")) {
                unlockInfo.setCustomerDrivingLicenseImg(newFileUrl);
            } else if (imgType.equals("customerVehicleLicenseImg")) {
                unlockInfo.setCustomerVehicleLicenseImg(newFileUrl);
            } else if (imgType.equals("customerBusinessLicenseImg")) {
                unlockInfo.setCustomerBusinessLicenseImg(newFileUrl);
            } else if (imgType.equals("customerIntroductionLetterImg")) {
                unlockInfo.setCustomerIntroductionLetterImg(newFileUrl);
            } else if (imgType.equals("unlockWorkOrderImg")) {
                unlockInfo.setUnlockWorkOrderImg(newFileUrl);
            }
            /**/
            unlockInfoService.update(unlockInfo);
        }
    } catch (Exception e) {
        e.printStackTrace();
        responseModel.responseCode = "0";
        responseModel.responseMessage = e.toString();
    }
    /* ??? */
    response.setHeader("content-type", "text/json;charset=utf-8");
    response.getOutputStream().write(responseModel.toByteArray());
}

From source file:controller.AddNewEC.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from   w  ww.ja  va  2s.  com*/
 *
 * @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 {
    response.setContentType("text/html;charset=UTF-8");
    ExtenuatingCircumstance ec = new ExtenuatingCircumstance();
    if (ServletFileUpload.isMultipartContent(request)) {
        try {
            int year = 0;
            String fname = StringUtils.EMPTY;
            String title = StringUtils.EMPTY;
            String desciption = StringUtils.EMPTY;
            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
            ArrayList<FileItem> files = new ArrayList<>();
            for (FileItem item : multiparts) {
                if (item.isFormField()) {
                    if (item.getFieldName().equals("year")) {
                        year = Integer.parseInt(item.getString());
                    }
                    if (item.getFieldName().equals("title")) {
                        title = item.getString();
                    }
                    if (item.getFieldName().equals("description")) {
                        desciption = item.getString();
                    }

                } else {
                    if (StringUtils.isNotEmpty(item.getName())) {
                        files.add(item);
                    }
                }
            }

            HttpSession session = request.getSession(false);
            Account studentAccount = (Account) session.getAttribute("account");
            LocalDateTime now = WsadUtils.GetCurrentDatetime();

            // insert EC
            ec.setAcademicYear(year);
            ec.setTitle(title);
            ec.setDescription(desciption);
            ec.setProcess_status("submitted");
            ec.setSubmitted_date(now.toString());
            ec.setAccount(studentAccount.getId());

            ExtenuatingCircumstance insertedEC = new ExtenuatingCircumstanceDAO().insertEC(ec);

            //insert assigned coordinator
            Account coordinator = new AccountDAO().getCoordinator(studentAccount.getFaculty());
            insertAssignedCoordinator(coordinator, insertedEC);

            //insert evidence
            insertedEvidence(files, now, insertedEC, studentAccount);

            String mailContent = WsadUtils.buildMailContentForNewEC(insertedEC);
            SendMail.sendMail(coordinator.getEmail(), "New EC", mailContent);

        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        request.setAttribute("message", "Sorry this Servlet only handles file upload request");
    }

    request.setAttribute("resultMsg", "inserted");
    request.getRequestDispatcher("AddNewECResult.jsp").forward(request, response);
}