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

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

Introduction

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

Prototype

boolean isFormField();

Source Link

Document

Determines whether or not a FileItem instance represents a simple form field.

Usage

From source file:com.ephesoft.dcma.gwt.foldermanager.server.UploadDownloadFilesServlet.java

private void uploadFile(HttpServletRequest req, String currentBatchUploadFolderName) throws IOException {

    File tempFile = null;//from w ww  . ja va  2s  . c om
    InputStream instream = null;
    OutputStream out = null;
    String uploadFileName = EMPTY_STRING;
    if (ServletFileUpload.isMultipartContent(req)) {
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);

        uploadFileName = EMPTY_STRING;
        String uploadFilePath = EMPTY_STRING;
        List<FileItem> items;
        try {
            items = upload.parseRequest(req);
            for (FileItem item : items) {
                if (!item.isFormField()) {
                    uploadFileName = item.getName();
                    if (uploadFileName != null) {
                        uploadFileName = uploadFileName
                                .substring(uploadFileName.lastIndexOf(File.separator) + 1);
                    }
                    uploadFilePath = currentBatchUploadFolderName + File.separator + uploadFileName;

                    try {
                        instream = item.getInputStream();
                        tempFile = new File(uploadFilePath);

                        out = new FileOutputStream(tempFile);
                        byte buf[] = new byte[1024];
                        int len = instream.read(buf);
                        while (len > 0) {
                            out.write(buf, 0, len);
                            len = instream.read(buf);
                        }
                    } catch (FileNotFoundException e) {
                        LOG.error(UNABLE_TO_CREATE_THE_UPLOAD_FOLDER_PLEASE_TRY_AGAIN);

                    } catch (IOException e) {
                        LOG.error(UNABLE_TO_READ_THE_FILE_PLEASE_TRY_AGAIN);
                    } finally {
                        if (out != null) {
                            out.close();
                        }
                        if (instream != null) {
                            instream.close();
                        }
                    }
                }
            }
        } catch (FileUploadException e) {
            LOG.error(UNABLE_TO_READ_THE_FORM_CONTENTS_PLEASE_TRY_AGAIN);
        }
        LOG.info(THE_CURRENT_UPLOAD_FOLDER_NAME_IS + currentBatchUploadFolderName);
        LOG.info(THE_NAME_OF_FILE_BEING_UPLOADED_IS + uploadFileName);
    } else {
        LOG.error(REQUEST_CONTENTS_TYPE_IS_NOT_SUPPORTED);
    }

}

From source file:mml.handler.post.MMLPostHandler.java

/**
 * Parse the import params from the request
 * @param request the http request// w w w. j  a va2s  . c  o  m
 */
void parseImportParams(HttpServletRequest request) throws MMLException {
    try {
        FileItemFactory factory = new DiskFileItemFactory();
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        // Parse the request
        List items = upload.parseRequest(request);
        for (int i = 0; i < items.size(); i++) {
            FileItem item = (FileItem) items.get(i);
            if (item.isFormField()) {
                String fieldName = item.getFieldName();
                if (fieldName != null) {
                    String contents = item.getString(this.encoding);
                    if (fieldName.equals(Params.DOCID)) {
                        int index = contents.lastIndexOf(".");
                        if (index != -1)
                            contents = contents.substring(0, index);
                        docid = contents;
                    } else if (fieldName.equals(Params.AUTHOR))
                        this.author = contents;
                    else if (fieldName.equals(Params.TITLE))
                        this.title = contents;
                    else if (fieldName.equals(Params.STYLE))
                        this.style = contents;
                    else if (fieldName.equals(Params.FORMAT))
                        this.format = contents;
                    else if (fieldName.equals(Params.SECTION))
                        this.section = contents;
                    else if (fieldName.equals(Params.VERSION1))
                        this.version1 = contents;
                    else if (fieldName.equals(Params.ENCODING))
                        encoding = contents;
                    else if (fieldName.equals(Params.ANNOTATIONS))
                        annotations = (JSONArray) JSONValue.parse(contents);
                }
            } else if (item.getName().length() > 0) {
                try {
                    // item.getName retrieves the ORIGINAL file name
                    String type = item.getContentType();
                    if (type != null) {
                        if (type.startsWith("image/")) {
                            InputStream is = item.getInputStream();
                            ByteHolder bh = new ByteHolder();
                            while (is.available() > 0) {
                                byte[] b = new byte[is.available()];
                                is.read(b);
                                bh.append(b);
                            }
                            ImageFile iFile = new ImageFile(item.getName(), item.getContentType(),
                                    bh.getData());
                            if (images == null)
                                images = new ArrayList<ImageFile>();
                            images.add(iFile);
                        } else if (type.equals("text/plain")) {
                            InputStream is = item.getInputStream();
                            ByteHolder bh = new ByteHolder();
                            while (is.available() > 0) {
                                byte[] b = new byte[is.available()];
                                is.read(b);
                                bh.append(b);
                            }
                            String style = new String(bh.getData(), encoding);
                            if (files == null)
                                files = new ArrayList<String>();
                            files.add(style);
                        }
                    }
                } catch (Exception e) {
                    throw new MMLException(e);
                }
            }
        }
    } catch (Exception e) {
        throw new MMLException(e);
    }
}

From source file:controller.ControlPembayaran.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String timeStamp = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(Calendar.getInstance().getTime());
    String timeStamp2 = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime());

    Pembayaran p = new Pembayaran();
    DatabaseManager db = new DatabaseManager();

    //Menyimpan file ke dalam sistem
    File file;/*  ww  w  . ja  v a  2s .  com*/
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    String filePath = "c:/Apache/";

    String contentType = request.getContentType();
    if (contentType.indexOf("multipart/form-data") >= 0) {

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(maxMemSize);
        factory.setRepository(new File("c:\\temp"));
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(maxFileSize);
        try {
            List fileItems = upload.parseRequest(request);
            Iterator i = fileItems.iterator();

            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                if (!fi.isFormField()) {
                    if (fi.getName().contains(".csv")) {
                        String fieldName = fi.getFieldName();
                        String fileName = fi.getName();
                        boolean isInMemory = fi.isInMemory();
                        long sizeInBytes = fi.getSize();
                        file = new File(filePath + "DataPembayaran_" + timeStamp + ".csv");
                        fi.write(file);
                    } else {
                        throw new Exception("Format File Salah");
                    }
                }
            }
        } catch (Exception ex) {
            returnError(request, response, ex);
        }
    } else {
        Exception e = new Exception("no file uploaded");
        returnError(request, response, e);
    }
    //Membaca file dari dalam sistem
    String csvFile = filePath + "DataPembayaran_" + timeStamp + ".csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";

    try {
        br = new BufferedReader(new FileReader(csvFile));
        int counter = 1;
        while ((line = br.readLine()) != null) {

            // use comma as separator
            String[] dataSet = line.split(cvsSplitBy);
            p.setID(timeStamp2 + "_" + counter);
            p.setWaktuPembayaran(dataSet[0]);
            p.setNoRekening(dataSet[1]);
            p.setJumlahPembayaran(Double.parseDouble(dataSet[2]));
            p.setNis(dataSet[3].substring(0, 5));
            p.setBulanTagihan(Integer.parseInt(dataSet[3].substring(6)));
            //Membandingkan nis, jumlah, bulan pembayaran ke tagihan
            Tagihan[] t = Tagihan.getListTagihan(p.getNis());
            for (int i = 0; i < t.length; i++) {
                if (t[i].getNis().equals(p.getNis()) && t[i].getJumlah_pembayaran() == p.getJumlahPembayaran()
                        && t[i].getBulan_tagihan() == p.getBulanTagihan())// bandingkan jumlah pembayaran
                {
                    //Masukan data pembayaran ke database
                    Pembayaran.simpanPembayaran(p);
                    //update status pembayaran tagihan
                    t[i].verifikasiSukses(p.getNis(), p.getBulanTagihan());//update status bayar tagihan menjadi sudah bayar
                }
            }
            counter++;
        }
        this.tampil(request, response, "Data Terverifikasi");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    //        }
}

From source file:com.bluelotussoftware.apache.commons.fileupload.example.FileUploadServlet.java

private String processUploadedFile(FileItem item) {
    StringBuilder sb = new StringBuilder();
    // Process a file upload
    if (!item.isFormField()) {
        String fieldName = item.getFieldName();
        String fileName = item.getName();
        String contentType = item.getContentType();
        boolean isInMemory = item.isInMemory();
        long sizeInBytes = item.getSize();
        try {/*from   w  ww  .j  av a  2s  .c o m*/
            item.write(new File(realPath + item.getName()));
        } catch (Exception ex) {
            log(FileUploadServlet.class.getName() + " has thrown an exception: " + ex.getMessage());
        }
        sb.append("<p>fieldName: ").append(fieldName).append("</p>").append("<p>fileName: ").append(fileName)
                .append("</p>").append("<p>contentType: ").append(contentType).append("</p>")
                .append("<p>isInMemory: ").append(isInMemory).append("</p>").append("<p>sizeInBytes: ")
                .append(sizeInBytes).append("</p>");
    }
    return sb.toString();
}

From source file:com.hzc.framework.ssh.controller.WebUtil.java

/**
 *  //from   www.java  2  s  .  c om
 *
 * @param path
 * @param ufc
 * @return
 * @throws Exception
 */
public static void uploadMulti(String path, UploadFileCall ufc) throws RuntimeException {
    try {
        HttpServletRequest request = getReq();
        ServletContext servletContext = getServletContext();
        File file = new File(servletContext.getRealPath(path));
        if (!file.exists())
            file.mkdir();
        DiskFileItemFactory fac = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(fac);
        upload.setHeaderEncoding("UTF-8");
        List<FileItem> fileItems = upload.parseRequest(request);
        for (FileItem item : fileItems) {
            if (!item.isFormField()) {
                String name = item.getName();
                String type = item.getContentType();
                if (StringUtils.isNotBlank(name)) {
                    File f = new File(file + File.separator + name);
                    item.write(f);
                    ufc.file(null, f, name, name, type);
                }
            }
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:com.martin.zkedit.controller.Import.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    logger.debug("Importing Action!");
    try {//from   ww  w . j a  v a2 s.  c o  m
        Properties globalProps = (Properties) this.getServletContext().getAttribute("globalProps");
        Dao dao = new Dao(globalProps);
        String zkServer = globalProps.getProperty("zkServer");
        String[] zkServerLst = zkServer.split(",");

        StringBuilder sbFile = new StringBuilder();
        String scmOverwrite = "false";
        String scmServer = "";
        String scmFilePath = "";
        String scmFileRevision = "";
        String uploadFileName = "";

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(1034);
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = upload.parseRequest(request);

        Iterator iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            if (item.isFormField()) {
                if (item.getFieldName().equals("scmOverwrite")) {
                    scmOverwrite = item.getString();
                }
                if (item.getFieldName().equals("scmServer")) {
                    scmServer = item.getString();
                }
                if (item.getFieldName().equals("scmFilePath")) {
                    scmFilePath = item.getString();
                }
                if (item.getFieldName().equals("scmFileRevision")) {
                    scmFileRevision = item.getString();
                }

            } else {
                uploadFileName = item.getName();
                sbFile.append(item.getString());
            }
        }

        InputStream inpStream;

        if (sbFile.toString().length() == 0) {
            uploadFileName = scmServer + scmFileRevision + "@" + scmFilePath;
            logger.debug("P4 file Processing " + uploadFileName);
            dao.insertHistory((String) request.getSession().getAttribute("authName"), request.getRemoteAddr(),
                    "Importing P4 File: " + uploadFileName + "<br/>" + "Overwrite: " + scmOverwrite);
            URL url = new URL(uploadFileName);
            URLConnection conn = url.openConnection();
            inpStream = conn.getInputStream();

        } else {
            logger.debug("Upload file Processing " + uploadFileName);
            dao.insertHistory((String) request.getSession().getAttribute("authName"), request.getRemoteAddr(),
                    "Uploading File: " + uploadFileName + "<br/>" + "Overwrite: " + scmOverwrite);
            inpStream = new ByteArrayInputStream(sbFile.toString().getBytes());
        }

        // open the stream and put it into BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(inpStream));
        String inputLine;
        List<String> importFile = new ArrayList<>();
        Integer lineCnt = 0;
        while ((inputLine = br.readLine()) != null) {
            lineCnt++;
            // Empty or comment?
            if (inputLine.trim().equals("") || inputLine.trim().startsWith("#")) {
                continue;
            }
            if (inputLine.startsWith("-")) {
                //DO nothing.
            } else if (!inputLine.matches("/.+=.+=.*")) {
                throw new IOException("Invalid format at line " + lineCnt + ": " + inputLine);
            }

            importFile.add(inputLine);
        }
        br.close();

        ZooKeeperUtil.INSTANCE.importData(importFile, Boolean.valueOf(scmOverwrite),
                ServletUtil.INSTANCE.getZookeeper(request, response, zkServerLst[0]));
        for (String line : importFile) {
            if (line.startsWith("-")) {
                dao.insertHistory((String) request.getSession().getAttribute("authName"),
                        request.getRemoteAddr(), "File: " + uploadFileName + ", Deleting Entry: " + line);
            } else {
                dao.insertHistory((String) request.getSession().getAttribute("authName"),
                        request.getRemoteAddr(), "File: " + uploadFileName + ", Adding Entry: " + line);
            }
        }
        request.getSession().setAttribute("flashMsg", "Import Completed!");
        response.sendRedirect("/home");
    } catch (FileUploadException | IOException | InterruptedException | KeeperException ex) {
        ServletUtil.INSTANCE.renderError(request, response, ex.getMessage());
    }
}

From source file:net.jforum.core.support.vraptor.DefaultLogicLocator.java

@SuppressWarnings({ "deprecation", "unchecked" })
private void handleMultipartRequest(VRaptorServletRequest servletRequest) {
    if (!FileUploadBase.isMultipartContent(servletRequest)) {
        return;/*w  w w.ja va  2 s  .  c  o m*/
    }

    // Create a factory for disk-based file items
    DiskFileItemFactory factory = new DiskFileItemFactory(4096 * 16, this.temporaryDirectory);

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

    List<FileItem> fileItems;

    // assume we know there are two files. The first file is a small
    // text file, the second is unknown and is written to a file on
    // the server
    try {
        fileItems = upload.parseRequest(servletRequest);
    } catch (FileUploadException e) {
        logger.warn("There was some problem parsing this multipart request, or someone is not sending a "
                + "RFC1867 compatible multipart request.", e);
        return;
    }

    for (FileItem item : fileItems) {
        if (item.isFormField()) {
            servletRequest.addParameterValue(item.getFieldName(), item.getString());
        } else {
            if (!item.getName().trim().equals("")) {
                try {
                    File file = File.createTempFile("vraptor.", ".upload");
                    item.write(file);

                    UploadedFileInformation fileInformation = new BasicUploadedFileInformation(file,
                            item.getName(), item.getContentType());

                    this.registeUploadedFile(servletRequest, item.getFieldName(), fileInformation);
                } catch (Exception e) {
                    logger.error("Nasty uploaded file " + item.getName(), e);
                }
            } else {
                logger.debug("A file field was empy: " + item.getFieldName());
            }
        }
    }
}

From source file:com.deem.zkui.controller.Import.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    logger.debug("Importing Action!");
    try {/*from w w  w .  j  a v  a  2  s.c om*/
        Properties globalProps = (Properties) this.getServletContext().getAttribute("globalProps");
        Dao dao = new Dao(globalProps);
        String zkServer = globalProps.getProperty("zkServer");
        String[] zkServerLst = zkServer.split(",");

        StringBuilder sbFile = new StringBuilder();
        String scmOverwrite = "false";
        String scmServer = "";
        String scmFilePath = "";
        String scmFileRevision = "";
        String uploadFileName = "";

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(1034);
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = upload.parseRequest(request);

        Iterator iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            if (item.isFormField()) {
                if (item.getFieldName().equals("scmOverwrite")) {
                    scmOverwrite = item.getString();
                }
                if (item.getFieldName().equals("scmServer")) {
                    scmServer = item.getString();
                }
                if (item.getFieldName().equals("scmFilePath")) {
                    scmFilePath = item.getString();
                }
                if (item.getFieldName().equals("scmFileRevision")) {
                    scmFileRevision = item.getString();
                }

            } else {
                uploadFileName = item.getName();
                sbFile.append(item.getString());
            }
        }

        InputStream inpStream;

        if (sbFile.toString().length() == 0) {
            uploadFileName = scmServer + scmFileRevision + "@" + scmFilePath;
            logger.debug("P4 file Processing " + uploadFileName);
            dao.insertHistory((String) request.getSession().getAttribute("authName"), request.getRemoteAddr(),
                    "Importing P4 File: " + uploadFileName + "<br/>" + "Overwrite: " + scmOverwrite);
            URL url = new URL(uploadFileName);
            URLConnection conn = url.openConnection();
            inpStream = conn.getInputStream();

        } else {
            logger.debug("Upload file Processing " + uploadFileName);
            dao.insertHistory((String) request.getSession().getAttribute("authName"), request.getRemoteAddr(),
                    "Uploading File: " + uploadFileName + "<br/>" + "Overwrite: " + scmOverwrite);
            inpStream = new ByteArrayInputStream(sbFile.toString().getBytes());
        }

        // open the stream and put it into BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(inpStream));
        String inputLine;
        List<String> importFile = new ArrayList<>();
        Integer lineCnt = 0;
        while ((inputLine = br.readLine()) != null) {
            lineCnt++;
            // Empty or comment?
            if (inputLine.trim().equals("") || inputLine.trim().startsWith("#")) {
                continue;
            }
            if (inputLine.startsWith("-")) {
                //DO nothing.
            } else if (!inputLine.matches("/.+=.+=.*")) {
                throw new IOException("Invalid format at line " + lineCnt + ": " + inputLine);
            }

            importFile.add(inputLine);
        }
        br.close();

        ZooKeeperUtil.INSTANCE.importData(importFile, Boolean.valueOf(scmOverwrite),
                ServletUtil.INSTANCE.getZookeeper(request, response, zkServerLst[0], globalProps));
        for (String line : importFile) {
            if (line.startsWith("-")) {
                dao.insertHistory((String) request.getSession().getAttribute("authName"),
                        request.getRemoteAddr(), "File: " + uploadFileName + ", Deleting Entry: " + line);
            } else {
                dao.insertHistory((String) request.getSession().getAttribute("authName"),
                        request.getRemoteAddr(), "File: " + uploadFileName + ", Adding Entry: " + line);
            }
        }
        request.getSession().setAttribute("flashMsg", "Import Completed!");
        response.sendRedirect("/home");
    } catch (FileUploadException | IOException | InterruptedException | KeeperException ex) {
        logger.error(Arrays.toString(ex.getStackTrace()));
        ServletUtil.INSTANCE.renderError(request, response, ex.getMessage());
    }
}

From source file:com.food.adminservlet.FoodServlet.java

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    int foodid = 0;
    String foodName = "";
    String fooddesc = "";
    Double foodprice = 0.0;/*from  ww w .j a v  a2  s .c o  m*/
    String foodCategory = "";
    PrintWriter out = response.getWriter();
    isMultipart = ServletFileUpload.isMultipartContent(request);
    FoodBean bkfood = new FoodBean();
    FoodBL foodbl = new FoodBL();
    try {

        response.setContentType("text/html");
        //java.io.PrintWriter out = response.getWriter( );

        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("c:\\temp"));

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        // maximum file size to be uploaded.
        upload.setSizeMax(maxFileSize);

        // 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()) {
                if (fi.getFieldName().equals("foodid")) {
                    foodid = Integer.parseInt(fi.getString());
                }
                if (fi.getFieldName().equals("foodname")) {
                    foodName = fi.getString();
                }
                if (fi.getFieldName().equals("fooddesc")) {
                    fooddesc = fi.getString();
                }
                if (fi.getFieldName().equals("foodprice")) {
                    foodprice = Double.parseDouble(fi.getString());
                }
                if (fi.getFieldName().equals("foodcate")) {
                    foodCategory = fi.getString();
                }

                out.println("<br>");
            }
            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>");
            }
        }

        out.println(fileName);

        bkfood.setFoodId(foodid);
        bkfood.setFoodName(foodName);
        bkfood.setFoodPrice(foodprice);
        bkfood.setFoodCateg(foodCategory);
        bkfood.setFoodDesc(fooddesc);
        bkfood.setFoodRetreiveImage(fileName);
        // bkfood.setFoodimage(request.getPart("foodimage"));
        bkfood.setFoodstatus("Y");

        int chk = foodbl.addFoodItems(bkfood);
        out.println(chk);

        if (chk == 1) {
            response.sendRedirect("food.jsp");
        }

    } catch (Exception ex) {
        out.println(ex);
    }
}

From source file:com.stratelia.silverpeas.versioningPeas.servlets.DragAndDrop.java

@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_ENTER_METHOD");
    if (!FileUploadUtil.isRequestMultipart(req)) {
        res.getOutputStream().println("SUCCESS");
        return;// ww  w  .j  av  a  2  s . co  m
    }
    try {
        req.setCharacterEncoding("UTF-8");
        String componentId = req.getParameter("ComponentId");
        SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE",
                "componentId = " + componentId);
        String id = req.getParameter("Id");
        SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE", "id = " + id);
        int userId = Integer.parseInt(req.getParameter("UserId"));
        SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE",
                "userId = " + userId);
        int versionType = Integer.parseInt(req.getParameter("Type"));
        boolean bIndexIt = StringUtil.getBooleanValue(req.getParameter("IndexIt"));

        String documentId = req.getParameter("DocumentId");

        List<FileItem> items = FileUploadUtil.parseRequest(req);

        VersioningImportExport vie = new VersioningImportExport();
        int majorNumber = 0;
        int minorNumber = 0;

        String fullFileName = null;
        for (FileItem item : items) {
            if (!item.isFormField()) {
                String fileName = item.getName();
                if (fileName != null) {
                    fileName = fileName.replace('\\', File.separatorChar);
                    fileName = fileName.replace('/', File.separatorChar);
                    SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE",
                            "file = " + fileName);
                    long size = item.getSize();
                    SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE",
                            "item #" + fullFileName + " size = " + size);
                    String mimeType = AttachmentController.getMimeType(fileName);
                    String physicalName = saveFileOnDisk(item, componentId, vie);
                    DocumentPK documentPK = new DocumentPK(-1, componentId);
                    if (StringUtil.isDefined(documentId)) {
                        documentPK.setId(documentId);
                    }
                    DocumentVersionPK versionPK = new DocumentVersionPK(-1, documentPK);
                    ForeignPK foreignPK = new ForeignPK(id, componentId);
                    Document document = new Document(documentPK, foreignPK, fileName, null,
                            Document.STATUS_CHECKINED, userId, null, null, componentId, null, null, 0, 0);

                    DocumentVersion version = new DocumentVersion(versionPK, documentPK, majorNumber,
                            minorNumber, userId, new Date(), null, versionType,
                            DocumentVersion.STATUS_VALIDATION_NOT_REQ, physicalName, fileName, mimeType,
                            new Long(size).intValue(), componentId);

                    List<DocumentVersion> versions = new ArrayList<DocumentVersion>();
                    versions.add(version);
                    VersionsType versionsType = new VersionsType();
                    versionsType.setListVersions(versions);
                    document.setVersionsType(versionsType);
                    List<Document> documents = new ArrayList<Document>();
                    documents.add(document);

                    try {
                        vie.importDocuments(foreignPK, documents, userId, bIndexIt);
                    } catch (Exception e) {
                        // storing data into DB failed, delete file just added on disk
                        deleteFileOnDisk(physicalName, componentId, vie);
                        throw e;
                    }
                } else {
                    SilverTrace.info("versioningPeas", "DragAndDrop.doPost", "root.MSG_GEN_PARAM_VALUE",
                            "item " + item.getFieldName() + "=" + item.getString());
                }
            }
        }
    } catch (Exception e) {
        SilverTrace.error("versioningPeas", "DragAndDrop.doPost", "ERREUR", e);
        res.getOutputStream().println("ERROR");
        return;
    }
    res.getOutputStream().println("SUCCESS");
}