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

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

Introduction

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

Prototype

long getSize();

Source Link

Document

Returns the size of the file item.

Usage

From source file:com.portfolio.data.attachment.FileServlet.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // =====================================================================================
    initialize(request);// w ww  . ja v a2 s .  c o  m

    int userId = 0;
    int groupId = 0;
    String user = "";

    HttpSession session = request.getSession(true);
    if (session != null) {
        Integer val = (Integer) session.getAttribute("uid");
        if (val != null)
            userId = val;
        val = (Integer) session.getAttribute("gid");
        if (val != null)
            groupId = val;
        user = (String) session.getAttribute("user");
    }

    Credential credential = null;
    Connection c = null;
    try {
        //On initialise le dataProvider
        if (ds == null) // Case where we can't deploy context.xml
        {
            c = getConnection();
        } else {
            c = ds.getConnection();
        }
        dataProvider.setConnection(c);
        credential = new Credential(c);
    } catch (Exception e) {
        e.printStackTrace();
    }

    /// uuid: celui de la ressource

    /// /resources/resource/file/{uuid}[?size=[S|L]&lang=[fr|en]]

    String origin = request.getRequestURL().toString();

    /// Rcupration des paramtres
    String url = request.getPathInfo();
    String[] token = url.split("/");
    String uuid = token[1];

    String size = request.getParameter("size");
    if (size == null)
        size = "S";

    String lang = request.getParameter("lang");
    if (lang == null) {
        lang = "fr";
    }

    /// Vrification des droits d'accs
    if (!credential.hasNodeRight(userId, groupId, uuid, Credential.WRITE)) {
        response.sendError(HttpServletResponse.SC_FORBIDDEN);
        //throw new Exception("L'utilisateur userId="+userId+" n'a pas le droit WRITE sur le noeud "+nodeUuid);
    }

    String data;
    String fileid = "";
    try {
        data = dataProvider.getResNode(uuid, userId, groupId);

        /// Parse les donnes
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        InputSource is = new InputSource(new StringReader("<node>" + data + "</node>"));
        Document doc = documentBuilder.parse(is);
        DOMImplementationLS impl = (DOMImplementationLS) doc.getImplementation().getFeature("LS", "3.0");
        LSSerializer serial = impl.createLSSerializer();
        serial.getDomConfig().setParameter("xml-declaration", false);

        /// Cherche si on a dj envoy quelque chose
        XPath xPath = XPathFactory.newInstance().newXPath();
        String filterRes = "//filename[@lang=\"" + lang + "\"]";
        NodeList nodelist = (NodeList) xPath.compile(filterRes).evaluate(doc, XPathConstants.NODESET);

        String filename = "";
        if (nodelist.getLength() > 0)
            filename = nodelist.item(0).getTextContent();

        if (!"".equals(filename)) {
            /// Already have one, per language
            String filterId = "//fileid[@lang='" + lang + "']";
            NodeList idlist = (NodeList) xPath.compile(filterId).evaluate(doc, XPathConstants.NODESET);
            if (idlist.getLength() != 0) {
                Element fileNode = (Element) idlist.item(0);
                fileid = fileNode.getTextContent();
            }
        }
    } catch (Exception e2) {
        e2.printStackTrace();
    }

    int last = fileid.lastIndexOf("/") + 1; // FIXME temp patch
    if (last < 0)
        last = 0;
    fileid = fileid.substring(last);
    /// request.getHeader("REFERRER");

    /// criture des donnes
    String urlTarget = "http://" + server + "/" + fileid;
    //      String urlTarget = "http://"+ server + "/user/" + user +"/file/" + uuid +"/"+ lang+ "/ptype/fs";

    // Unpack form, fetch binary data and send
    // 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();
    File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
    factory.setRepository(repository);
    //*/

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

    String json = "";
    HttpURLConnection connection = null;
    // Parse the request
    try {
        List<FileItem> items = upload.parseRequest(request);
        // Process the uploaded items
        Iterator<FileItem> iter = items.iterator();
        while (iter.hasNext()) {
            FileItem item = iter.next();

            if ("uploadfile".equals(item.getFieldName())) {
                // Send raw data
                InputStream inputData = item.getInputStream();

                /*
                URL urlConn = new URL(urlTarget);
                connection = (HttpURLConnection) urlConn.openConnection();
                connection.setDoOutput(true);
                connection.setUseCaches(false);                 /// We don't want to cache data
                connection.setInstanceFollowRedirects(false);   /// Let client follow any redirection
                String method = request.getMethod();
                connection.setRequestMethod(method);
                        
                String context = request.getContextPath();
                connection.setRequestProperty("app", context);
                //*/

                String fileName = item.getName();
                long filesize = item.getSize();
                String contentType = item.getContentType();

                //               /*
                connection = CreateConnection(urlTarget, request);
                connection.setRequestProperty("filename", uuid);
                connection.setRequestProperty("content-type", "application/octet-stream");
                connection.setRequestProperty("content-length", Long.toString(filesize));
                //*/
                connection.connect();

                OutputStream outputData = connection.getOutputStream();
                IOUtils.copy(inputData, outputData);

                /// Those 2 lines are needed, otherwise, no request sent
                int code = connection.getResponseCode();
                String msg = connection.getResponseMessage();

                InputStream objReturn = connection.getInputStream();
                StringWriter idResponse = new StringWriter();
                IOUtils.copy(objReturn, idResponse);
                fileid = idResponse.toString();

                connection.disconnect();

                /// Construct Json
                StringWriter StringOutput = new StringWriter();
                JsonWriter writer = new JsonWriter(StringOutput);
                writer.beginObject();
                writer.name("files");
                writer.beginArray();
                writer.beginObject();

                writer.name("name").value(fileName);
                writer.name("size").value(filesize);
                writer.name("type").value(contentType);
                writer.name("url").value(origin);
                writer.name("fileid").value(fileid);
                //                               writer.name("deleteUrl").value(ref);
                //                                       writer.name("deleteType").value("DELETE");
                writer.endObject();

                writer.endArray();
                writer.endObject();

                writer.close();

                json = StringOutput.toString();

                /*
                DataOutputStream datawriter = new DataOutputStream(connection.getOutputStream());
                byte[] buffer = new byte[1024];
                int dataSize;
                while( (dataSize = inputData.read(buffer,0,buffer.length)) != -1 )
                {
                   datawriter.write(buffer, 0, dataSize);
                }
                datawriter.flush();
                datawriter.close();
                //*/
                //               outputData.close();
                //               inputData.close();

                break;
            }
        }
    } catch (FileUploadException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    /*
    HttpURLConnection connection = CreateConnection( urlTarget, request );
            
    connection.setRequestProperty("referer", origin);
            
    /// Send post data
    ServletInputStream inputData = request.getInputStream();
    DataOutputStream writer = new DataOutputStream(connection.getOutputStream());
            
    byte[] buffer = new byte[1024];
    int dataSize;
    while( (dataSize = inputData.read(buffer,0,buffer.length)) != -1 )
    {
       writer.write(buffer, 0, dataSize);
    }
    inputData.close();
    writer.close();
            
    /// So we can forward some Set-Cookie
    String ref = request.getHeader("referer");
            
    /// Prend le JSON du fileserver
    InputStream in = connection.getInputStream();
            
    InitAnswer(connection, response, ref);
            
    BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
    StringBuilder builder = new StringBuilder();
    for( String line = null; (line = reader.readLine()) != null; )
       builder.append(line).append("\n");
    //*/

    /// Envoie la mise  jour au backend
    /*
    try
    {
       PostForm.updateResource(session.getId(), backend, uuid, lang, json);
    }
    catch( Exception e )
    {
       e.printStackTrace();
    }
    //*/

    connection.disconnect();
    /// Renvoie le JSON au client
    response.setContentType("application/json");
    PrintWriter respWriter = response.getWriter();
    respWriter.write(json);

    //      RetrieveAnswer(connection, response, ref);
    dataProvider.disconnect();
}

From source file:admin.controller.ServletAddLooks.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./* ww w  .  j av a2s  . 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
 */
public void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    super.processRequest(request, response);
    String filePath;
    String fileName, fieldName;
    Looks look;
    RequestDispatcher request_dispatcher;
    String look_name = null;
    Integer organization_id = 0;
    boolean check;
    look = new Looks();
    check = false;

    response.setContentType("text/html;charset=UTF-8");
    File file;
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    try {
        String uploadPath = AppConstants.LOOK_IMAGES_HOME;

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

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

            // 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
                    fieldName = fi.getFieldName();
                    try {
                        if (fieldName.equals("lookname")) {
                            look_name = fi.getString();
                        }
                        if (fieldName.equals("organization")) {
                            organization_id = Integer.parseInt(fi.getString());
                        }
                    } catch (Exception e) {
                        logger.log(Level.SEVERE, "Exception while getting the look_name and organization_id",
                                e);
                    }
                } else {
                    check = look.checkAvailability(look_name, organization_id);

                    if (check == false) {
                        fieldName = fi.getFieldName();
                        fileName = fi.getName();

                        File uploadDir = new File(uploadPath);
                        if (!uploadDir.exists()) {
                            uploadDir.mkdirs();
                        }

                        //                            int inStr = fileName.indexOf(".");
                        //                            String Str = fileName.substring(0, inStr);
                        //
                        //                            fileName = look_name + "_" + Str + ".png";
                        fileName = look_name + "_" + fileName;
                        boolean isInMemory = fi.isInMemory();
                        long sizeInBytes = fi.getSize();

                        filePath = uploadPath + File.separator + fileName;
                        File storeFile = new File(filePath);

                        fi.write(storeFile);

                        look.addLooks(look_name, fileName, organization_id);
                        response.sendRedirect(request.getContextPath() + "/admin/looks.jsp");
                    } else {
                        response.sendRedirect(request.getContextPath() + "/admin/looks.jsp?exist=exist");
                    }

                }
            }

        } else {
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Exception while uploading the Looks image", ex);
    }
}

From source file:admin.controller.ServletAddCategories.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.//  w  w w .  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
 */
public void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.processRequest(request, response);
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    File file;
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    try {

        String uploadPath = AppConstants.ORG_CATEGORIES_HOME;

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

            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(AppConstants.TMP_FOLDER));

            // 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>JSP File upload</title>");
            out.println("</head>");
            out.println("<body>");
            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                if (fi.isFormField()) {
                    // Get the uploaded file parameters
                    field_name = fi.getFieldName();
                    if (field_name.equals("category_name")) {
                        category_name = fi.getString();
                    }
                    if (field_name.equals("organization")) {
                        organization_id = fi.getString();
                        uploadPath = uploadPath + File.separator + organization_id;
                    }

                } else {

                    field_name = fi.getFieldName();
                    file_name = fi.getName();
                    if (file_name != "") {
                        check = categories.checkAvailability(category_name, Integer.parseInt(organization_id));
                        if (check == false) {
                            File uploadDir = new File(uploadPath);
                            if (!uploadDir.exists()) {
                                uploadDir.mkdirs();
                            }

                            //we need to save file name directly
                            //                                int inStr = file_name.indexOf(".");
                            //                                String Str = file_name.substring(0, inStr);
                            //                                file_name = category_name + "_" + Str + ".jpeg";

                            file_name = category_name + "_" + file_name;
                            boolean isInMemory = fi.isInMemory();
                            long sizeInBytes = fi.getSize();

                            String filePath = uploadPath + File.separator + file_name;
                            File storeFile = new File(filePath);

                            fi.write(storeFile);
                            categories.addCategories(Integer.parseInt(organization_id), category_name,
                                    file_name);

                            out.println("Uploaded Filename: " + filePath + "<br>");
                            response.sendRedirect(request.getContextPath() + "/admin/categories.jsp");
                        } else {
                            response.sendRedirect(
                                    request.getContextPath() + "/admin/categories.jsp?exist=exist");
                        }
                    }
                }
            }
            out.println("</body>");
            out.println("</html>");
        } else {
            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>");
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Exception while adding categories", ex);
    } finally {
        out.close();
    }
}

From source file:admin.controller.ServletChangeLooks.java

/**
  * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
  * methods./*  w  w  w.jav a2  s. 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
  */
public void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.processRequest(request, response);
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    String filePath = "";
    String fileName, fieldName, uploadPath, deletePath, file_name_to_delete = "", uploadPath1;
    Looks look;
    RequestDispatcher request_dispatcher;
    String lookname = "", lookid = "";
    Integer organization = 0;
    look = new Looks();
    boolean check = false;

    File file;
    int maxFileSize = 5000 * 1024;
    int maxMemSize = 5000 * 1024;
    try {
        // Verify the content type
        String contentType = request.getContentType();
        if ((contentType.indexOf("multipart/form-data") >= 0)) {

            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(AppConstants.TMP_FOLDER));

            // 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>JSP File upload</title>");
            out.println("</head>");
            out.println("<body>");
            while (i.hasNext()) {
                FileItem fi = (FileItem) i.next();
                if (fi.isFormField()) {
                    // Get the uploaded file parameters
                    fieldName = fi.getFieldName();
                    if (fieldName.equals("lookname")) {
                        lookname = fi.getString();
                    }
                    if (fieldName.equals("lookid")) {
                        lookid = fi.getString();
                    }
                    if (fieldName.equals("organization")) {
                        organization = Integer.parseInt(fi.getString());
                    }
                    file_name_to_delete = look.getFileName(Integer.parseInt(lookid));
                } else {

                    check = look.checkAvailabilities(Integer.parseInt(lookid), lookname, organization);

                    if (check == false) {

                        fieldName = fi.getFieldName();
                        fileName = fi.getName();

                        File uploadDir = new File(AppConstants.LOOK_IMAGES_HOME);

                        if (!uploadDir.exists()) {
                            uploadDir.mkdirs();
                        }

                        //                            int inStr = fileName.indexOf(".");
                        //                            String Str = fileName.substring(0, inStr);
                        //
                        //                            fileName = lookname + "_" + Str + ".png";
                        fileName = lookname + "_" + fileName;
                        boolean isInMemory = fi.isInMemory();
                        long sizeInBytes = fi.getSize();

                        String file_path = AppConstants.LOOK_IMAGES_HOME + File.separator + fileName;
                        String delete_path = AppConstants.LOOK_IMAGES_HOME + File.separator
                                + file_name_to_delete;
                        File deleteFile = new File(delete_path);
                        deleteFile.delete();
                        File storeFile = new File(file_path);
                        fi.write(storeFile);
                        out.println("Uploaded Filename: " + filePath + "<br>");
                        look.changeLooks(Integer.parseInt(lookid), lookname, fileName, organization);
                        response.sendRedirect(request.getContextPath() + "/admin/looks.jsp");
                    } else {
                        response.sendRedirect(
                                request.getContextPath() + "/admin/editlook.jsp?exist=exist&look_id=" + lookid
                                        + "&look_name=" + lookname + "&organization_id=" + organization
                                        + "&image_file_name=" + file_name_to_delete);
                    }
                }
            }
            out.println("</body>");
            out.println("</html>");
        } else {
            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>");
        }
    } catch (Exception ex) {
        logger.log(Level.SEVERE, "Exception while editing the looks", ex);
    } finally {
        out.close();
    }

}

From source file:fr.paris.lutece.plugins.directory.service.upload.DirectoryAsynchronousUploadHandler.java

/**
 * Performs an upload action./*from   w w w.  j  a  v a 2s  .c  o  m*/
 *
 * @param request the HTTP request
 * @param strUploadAction the name of the upload action
 * @param map the map of <idEntry, RecordFields>
 * @param record the record
 * @param plugin the plugin
 * @throws DirectoryErrorException exception if there is an error
 */
public void doUploadAction(HttpServletRequest request, String strUploadAction,
        Map<String, List<RecordField>> map, Record record, Plugin plugin) throws DirectoryErrorException {
    // Get the name of the upload field
    String strIdEntry = (strUploadAction.startsWith(UPLOAD_SUBMIT_PREFIX)
            ? strUploadAction.substring(UPLOAD_SUBMIT_PREFIX.length())
            : strUploadAction.substring(UPLOAD_DELETE_PREFIX.length()));

    String strFieldName = buildFieldName(strIdEntry);

    if (strUploadAction.startsWith(UPLOAD_SUBMIT_PREFIX)) {
        // A file was submitted
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

        FileItem fileItem = multipartRequest.getFile(strFieldName);

        if (fileItem != null) {
            // Check if the file can be uploaded first
            List<FileItem> listFileItemsToUpload = new ArrayList<FileItem>();
            listFileItemsToUpload.add(fileItem);

            HttpSession session = request.getSession();
            // The following method call throws a DirectoryErrorException if the file cannot be uploaded
            canUploadFiles(strFieldName, getFileItems(strIdEntry, session.getId()), listFileItemsToUpload,
                    request.getLocale());

            // Add the file to the map of <idEntry, RecordFields>
            IEntry entry = EntryHome.findByPrimaryKey(DirectoryUtils.convertStringToInt(strIdEntry), plugin);

            if (entry != null) {
                RecordField recordField = new RecordField();
                recordField.setRecord(record);
                recordField.setEntry(entry);

                String strFilename = FileUploadService.getFileNameOnly(fileItem);

                if ((fileItem.get() != null) && (fileItem.getSize() < Integer.MAX_VALUE)) {
                    if (entry instanceof EntryTypeDownloadUrl) {
                        recordField.setFileName(strFilename);
                        recordField.setFileExtension(FileSystemUtil.getMIMEType(strFilename));
                    } else {
                        PhysicalFile physicalFile = new PhysicalFile();
                        physicalFile.setValue(fileItem.get());

                        File file = new File();
                        file.setPhysicalFile(physicalFile);
                        file.setTitle(strFilename);
                        file.setSize((int) fileItem.getSize());
                        file.setMimeType(FileSystemUtil.getMIMEType(strFilename));

                        recordField.setFile(file);
                    }
                }

                List<RecordField> listRecordFields = map.get(strIdEntry);

                if (listRecordFields == null) {
                    listRecordFields = new ArrayList<RecordField>();
                }

                listRecordFields.add(recordField);
                map.put(strIdEntry, listRecordFields);
            }

            // Add to the asynchronous uploaded files map
            addFileItemToUploadedFile(fileItem, strIdEntry, request.getSession());
        }
    } else if (strUploadAction.startsWith(UPLOAD_DELETE_PREFIX)) {
        HttpSession session = request.getSession(false);

        if (session != null) {
            // Some previously uploaded files were deleted
            // Build the prefix of the associated checkboxes
            String strPrefix = UPLOAD_CHECKBOX_PREFIX + strIdEntry;

            // Look for the checkboxes in the request
            Enumeration<String> enumParamNames = request.getParameterNames();
            List<Integer> listIndexes = new ArrayList<Integer>();

            while (enumParamNames.hasMoreElements()) {
                String strParamName = enumParamNames.nextElement();

                if (strParamName.startsWith(strPrefix)) {
                    // Get the index from the name of the checkbox
                    listIndexes.add(Integer.parseInt(strParamName.substring(strPrefix.length())));
                }
            }

            Collections.sort(listIndexes);
            Collections.reverse(listIndexes);

            for (int nIndex : listIndexes) {
                // Remove from the map of <idEntry, RecordField>
                List<RecordField> listRecordFields = map.get(strIdEntry);

                if (listRecordFields != null) {
                    listRecordFields.remove(nIndex);
                }

                // Remove from the asynchronous uploaded files map
                removeFileItem(strIdEntry, session.getId(), nIndex);
            }
        }
    }
}

From source file:com.nartex.FileManager.java

public JSONObject add() {
    JSONObject fileInfo = null;//from w ww  .j  a  v  a 2  s .c  o m
    Iterator it = this.files.iterator();
    String mode = "";
    String currentPath = "";
    if (!it.hasNext()) {
        this.error(lang("INVALID_FILE_UPLOAD"));
    } else {
        String allowed[] = { ".", "-" };
        FileItem item = null;
        String fileName = "";
        try {
            while (it.hasNext()) {
                item = (FileItem) it.next();
                if (item.isFormField()) {
                    if (item.getFieldName().equals("mode")) {
                        mode = item.getString();
                        if (!mode.equals("add")) {
                            this.error(lang("INVALID_FILE_UPLOAD"));
                        }
                    } else if (item.getFieldName().equals("currentpath")) {
                        currentPath = item.getString();
                    }
                } else if (item.getFieldName().equals("newfile")) {
                    fileName = item.getName();
                    // strip possible directory (IE)
                    int pos = fileName.lastIndexOf(File.separator);
                    if (pos > 0)
                        fileName = fileName.substring(pos + 1);
                    boolean error = false;
                    long maxSize = 0;
                    if (config.getProperty("upload-size") != null) {
                        maxSize = Integer.parseInt(config.getProperty("upload-size"));
                        if (maxSize != 0 && item.getSize() > (maxSize * 1024 * 1024)) {
                            this.error(sprintf(lang("UPLOAD_FILES_SMALLER_THAN"), maxSize + "Mb"));
                            error = true;
                        }
                    }
                    if (!error) {
                        if (!isImage(fileName) && (config.getProperty("upload-imagesonly") != null
                                && config.getProperty("upload-imagesonly").equals("true")
                                || this.params.get("type") != null
                                        && this.params.get("type").equals("Image"))) {
                            this.error(lang("UPLOAD_IMAGES_ONLY"));
                        } else {
                            fileInfo = new JSONObject();
                            LinkedHashMap<String, String> strList = new LinkedHashMap<String, String>();
                            strList.put("fileName", fileName);
                            fileName = (String) cleanString(strList, allowed).get("fileName");

                            if (config.getProperty("upload-overwrite").equals("false")) {
                                fileName = this.checkFilename(this.documentRoot + currentPath, fileName, 0);
                            }

                            File saveTo = new File(this.documentRoot + currentPath + fileName);
                            item.write(saveTo);

                            fileInfo.put("Path", currentPath);
                            fileInfo.put("Name", fileName);
                            fileInfo.put("Error", "");
                            fileInfo.put("Code", 0);
                        }
                    }
                }
            }
        } catch (Exception e) {
            this.error(lang("INVALID_FILE_UPLOAD"));
        }
    }
    return fileInfo;

}

From source file:it.univaq.servlet.Upload_pub.java

/**
 * Handles the HTTP <code>GET</code> method.
 *
 * @param request servlet request//www .ja v a 2s .  c  o  m
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */

protected boolean action_upload(HttpServletRequest request) throws FileUploadException, Exception {

    HttpSession s = SecurityLayer.checkSession(request);
    if (ServletFileUpload.isMultipartContent(request)) {

        //dichiaro mappe 
        Map pubb = new HashMap();
        Map rist = new HashMap();
        Map key = new HashMap();
        Map files = new HashMap();
        int idristampa = 0;
        //La dimensione massima di ogni singolo file su system
        int dimensioneMassimaDelFileScrivibieSulFileSystemInByte = 10 * 1024 * 1024; // 10 MB
        //Dimensione massima della request
        int dimensioneMassimaDellaRequestInByte = 20 * 1024 * 1024; // 20 MB

        // Creo un factory per l'accesso al filesystem
        DiskFileItemFactory factory = new DiskFileItemFactory();

        //Setto la dimensione massima di ogni file, opzionale
        factory.setSizeThreshold(dimensioneMassimaDelFileScrivibieSulFileSystemInByte);

        // Istanzio la classe per l'upload
        ServletFileUpload upload = new ServletFileUpload(factory);

        // Setto la dimensione massima della request
        upload.setSizeMax(dimensioneMassimaDellaRequestInByte);

        // Parso la riquest della servlet, mi viene ritornata una lista di FileItem con
        // tutti i field sia di tipo file che gli altri
        List<FileItem> items = upload.parseRequest(request);

        /*
        * La classe usata non permette di riprendere i singoli campi per
        * nome quindi dovremmo scorrere la lista che ci viene ritornata con
        * il metodo parserequest
        */
        //scorro per tutti i campi inviati
        for (int i = 0; i < items.size(); i++) {
            FileItem item = items.get(i);
            // Controllo se si tratta di un campo di input normale
            if (item.isFormField()) {
                // Prendo solo il nome e il valore
                String name = item.getFieldName();
                String value = item.getString();

                if (name.equals("titolo") && !name.isEmpty() || name.equals("autore") && !name.isEmpty()
                        || name.equals("descrizione") && !name.isEmpty()) {
                    pubb.put(name, value);
                } else if (name.equals("isbn") && !name.isEmpty() || name.equals("editore") && !name.isEmpty()
                        || name.equals("lingua") && !name.isEmpty()
                        || name.equals("numpagine") && !name.isEmpty()) {
                    rist.put(name, value);
                } else if (name.equals("datapub") && !name.isEmpty()) {

                    rist.put(name, value);
                } else if (name.equals("key1") || name.equals("key2") || name.equals("key3")
                        || name.equals("key4")) {
                    key.put(name, value);
                } else
                    return false;

            } // Se si stratta invece di un file
            else {

                // Dopo aver ripreso tutti i dati disponibili name,type,size
                //String fieldName = item.getFieldName();
                String fileName = item.getName();
                String contentType = item.getContentType();
                long sizeInBytes = item.getSize();
                if (contentType.equals("image/jpeg") && !fileName.isEmpty()) {
                    //li salvo nella mappa
                    files.put("name", fileName);
                    files.put("type", contentType);
                    files.put("size", sizeInBytes);

                    //li scrivo nel db
                    //Database.connect();
                    Database.insertRecord("files", files);
                    //Database.close();
                    ResultSet rs1 = Database.selectRecord("files", "name='" + files.get("name") + "'");
                    if (!isNull(rs1)) {
                        while (rs1.next()) {
                            rist.put("copertina", rs1.getInt("id"));

                        }
                    }

                    // Posso scriverlo direttamente su filesystem
                    if (true) {
                        File uploadedFile = new File(
                                getServletContext().getInitParameter("uploads.directory") + fileName);
                        // Solo se veramente ho inviato qualcosa
                        if (item.getSize() > 0) {
                            item.write(uploadedFile);
                        }
                    }
                } else if (!fileName.isEmpty()) {
                    files.put("name", fileName);
                    files.put("type", contentType);
                    files.put("size", sizeInBytes);

                    //li scrivo nel db
                    //Database.connect();
                    Database.insertRecord("files", files);
                    //Database.close();
                    ResultSet rs4 = Database.selectRecord("files", "name='" + files.get("name") + "'");
                    if (!isNull(rs4)) {
                        while (rs4.next()) {

                            rist.put("download", rs4.getInt("id"));
                        }
                    }
                    // Posso scriverlo direttamente su filesystem
                    if (true) {
                        File uploadedFile = new File(
                                getServletContext().getInitParameter("uploads.directory") + fileName);
                        // Solo se veramente ho inviato qualcosa
                        if (item.getSize() > 0) {
                            item.write(uploadedFile);
                        }
                    }

                }

            }
        }

        //inserisco dati  nel db
        pubb.put("idutente", s.getAttribute("userid"));
        //    Database.connect();
        //prova incremento campo inserite per utenti piu attivi
        pubb.put("idutente", s.getAttribute("userid"));
        //    Database.connect();
        int userid = (int) s.getAttribute("userid");
        //prova incremento campo inserite per utenti piu attivi

        //    inserisco parole chiave
        Database.simpleupdateRecord("utenti", "inserite=inserite+1", "id=" + userid);

        //    inserisco parole chiave
        Database.insertRecord("keyword", key);
        //seleziono id parole chiave appena inserite
        ResultSet rs2 = Database.selectRecord("keyword",
                "key1='" + key.get("key1") + "'&&" + "key2='" + key.get("key2") + "'&&" + "key3='"
                        + key.get("key3") + "'&&" + "key4='" + key.get("key4") + "'");
        if (!isNull(rs2)) {
            while (rs2.next()) { //e inserisco id keyword nella tab pubblicazione
                pubb.put("keyword", rs2.getInt("id"));
            }
        }
        //inserisco ora la pubblicazione con tutti i dati
        Database.insertRecord("pubblicazione", pubb);
        //seleziono id pubblicazione appena inserita
        ResultSet rs = Database.selectRecord("pubblicazione", "titolo='" + pubb.get("titolo") + "'");
        //e inserisco l'id nella tab ristampa e  tab files
        while (rs.next()) {
            rist.put("idpub", rs.getInt("id"));
        }

        ResultSet rs3 = Database.selectRecord("ristampa", "isbn=" + rist.get("isbn"));
        while (rs3.next()) {
            idristampa = rs3.getInt("id");
        }
        //inserisco dati in tab ristampa
        //    Database.updateRecord("ristampa", rist, "id " +idristampa);
        Database.insertRecord("ristampa", rist);
        //    Database.close();
        //vado alla pagina di corretto inserimento
        //    FreeMarker.process("home.html", pubb, response, getServletContext());
        return true;
    } else
        return false;
}

From source file:hu.sztaki.lpds.pgportal.portlets.asm.ClientError.java

@SuppressWarnings("empty-statement")
public void doUploadLigands(ActionRequest request, ActionResponse response) {
    try {/*from ww  w  .j a  va  2s . c o m*/
        // MULTIPART REQUEST
        ActionRequest temp_req = request;

        DiskFileItemFactory factory = new DiskFileItemFactory();
        PortletFileUpload pfu = new PortletFileUpload(factory);

        List fileItems = pfu.parseRequest(temp_req);

        // ligands
        Iterator iter = fileItems.iterator();
        ArrayList<FileItem> file2upload = new ArrayList<FileItem>();
        FileItem receptorFileItem = null;
        FileItem configFileItem = null;
        String vina_configuration = "";
        String vina_best_result = "";
        String rep_owner = "";
        String task_name = "";

        while (iter.hasNext()) {
            FileItem item = (FileItem) iter.next();
            if (item.isFormField()) {
                // TEXT FIELD
                if (item.getFieldName().equals("vina_configuration")) {
                    vina_configuration = item.getString();
                }
                if (item.getFieldName().startsWith("vina_best_result")) {
                    vina_best_result = item.getString();
                }
                if (item.getFieldName().startsWith("rep_owner")) {
                    rep_owner = item.getString();
                }
                if (item.getFieldName().startsWith("task_name")) {
                    task_name = item.getString();
                }

            } else {
                // FILE UPLOAD
                String fieldName = item.getFieldName();
                String fileName = item.getName();
                long sizeInBytes = item.getSize();
                if (fieldName.equals("receptor")) {
                    receptorFileItem = item;
                }
                if (fieldName.equals("ligands")) {
                    file2upload.add(item);
                }
                if (fieldName.equals("vina_config_file")) {
                    configFileItem = item;
                }
            }
        }

        //IMPORT NEW WORKFLOW INSTANCE
        // selected_wf_type="122";
        String newWfinstanceID = selected_wf_type + "_" + task_name;
        String ruser = request.getRemoteUser();
        rep_owner = ruser;
        String userId = rep_owner;
        String rowner = request.getParameter("owner");
        selected_wf = importWorkflow(rep_owner, ruser, selected_wf_type, newWfinstanceID);

        if (selected_wf.length() < 3) {
            throwError("Import " + newWfinstanceID + " workflow is failed", 1);
        }

        String job_generator = "Generator";

        String port_input_receptor = "5"; //input-receptor.pdbqt
        String port_vina_config = "4"; //vina-config.txt
        String port_input_ligands = "3"; //input-ligands.zip
        String cmd_parameter_wus_nr = ""; // number of WUs

        String job_collector = "collector.sh";

        String cmd_parameter_best = ""; // number of Best results

        // UPLOAD LIGAND ZIP FILE

        String selected_job = job_generator;
        String selected_port = port_input_ligands;

        for (FileItem f : file2upload) {
            if (f.getName().endsWith(".zip")) {
                File uploadedFile = asm_service.uploadFiletoPortalServer(f, userId, f.getName());
                asm_service.placeUploadedFile(userId, uploadedFile, selected_wf, selected_job, selected_port);
            }
        }

        /*
                    // UPLOAD MULTIPLE PDBQT LIGAND FILE
                    String ligandDir="/tmp/wf_dir_ligands";
                    String zipName="upload.zip";
                
                    Runtime.getRuntime().exec("rm -rf "+ligandDir+"/"+zipName);
                
                    for(FileItem f:file2upload){
        File uploadedFile = asm_service.uploadFiletoPortalServer(f, userId, f.getName());
        System.out.println("jaj"+uploadedFile.getAbsolutePath());
        // PREPARE UPLOADED FILES to SUBMIT MOVE AND COMPRESS
        Runtime.getRuntime().exec("cp "+uploadedFile+" "+ligandDir);
        Runtime.getRuntime().exec("zip "+ligandDir+"/"+zipName+" "+ligandDir+"/"+uploadedFile.getName());
                    }
                
                    File ligandsFile=new File(ligandDir+"/"+zipName);
                    selected_port = "0";
                    asm_service.placeUploadedFile(userId, ligandsFile, selected_wf, selected_job, selected_port);
        */

        // UPLOAD RECEPTOR PDBQT FILE
        selected_port = port_input_receptor;

        File receptorFile = asm_service.uploadFiletoPortalServer(receptorFileItem, userId,
                receptorFileItem.getName());
        asm_service.placeUploadedFile(userId, receptorFile, selected_wf, selected_job, selected_port);

        // SETUP CONFIGURATION
        if (configFileItem == null) {
            String content = vina_configuration;
            selected_port = port_vina_config;
            asm_service.setInputText(userId, content, selected_wf, selected_job, selected_port);
        } else {
            selected_port = port_vina_config;
            File configFile = asm_service.uploadFiletoPortalServer(configFileItem, userId,
                    configFileItem.getName());
            asm_service.placeUploadedFile(userId, configFile, selected_wf, selected_job, selected_port);
        }
        // WUs number
        String wu_content = "5";
        asm_service.setCommandLineArg(userId, selected_wf, selected_job, wu_content);
        // setup Best result number, at the collector job argument
        String best_content = vina_best_result;
        selected_job = job_collector;
        asm_service.setCommandLineArg(userId, selected_wf, selected_job, best_content);

        asm_service.submit(userId, selected_wf, "", "");

        request.setAttribute("nextJSP", DISPLAY_PAGE);

        throwError("Wow! Submitted task! Success! Wait for run, and check eventually!", 10);
        String nextJSP = DISPLAY_PAGE;
        PortletRequestDispatcher dispatcher;
        dispatcher = getPortletContext().getRequestDispatcher(nextJSP);
        dispatcher.include(request, response);

    } catch (Exception ex) {
        throwError(ex.getMessage(), 10);
    }
}

From source file:com.Voxce.Controllers.TrialsController.java

public ModelAndView SubmitUserCV(HttpServletRequest request, HttpServletResponse response) throws Exception {
    if (!ServletFileUpload.isMultipartContent(request)) {
        throw new IllegalArgumentException(
                "Request is not multipart, please 'multipart/form-data' enctype for your form.");
    }/*  w w w  .  j  a v  a  2 s  . c  o  m*/

    List<FileItem> CVitems;

    ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory());
    PrintWriter writer = response.getWriter();
    response.setContentType("text/plain");
    try {
        CVitems = uploadHandler.parseRequest(request);
        for (FileItem item2 : CVitems) {
            if (!item2.isFormField()) {
                if (item2.getSize() > 9999000) {
                    writer.write("{\"name\":\"" + "Sorry File Size is larger then 9 MB" + "\",\"type\":\""
                            + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}");
                    break; // assume we only get one file at a time
                } else {
                    CVitem = item2;
                    //   
                    System.out.println("Name =" + item2.getName() + "  Size=" + item2.getSize() + " type ="
                            + item2.getContentType());
                    writer.write("{\"name\":\"" + item2.getName() + "\",\"type\":\"" + item2.getContentType()
                            + "\",\"size\":\"" + item2.getSize() + "\"}");
                    break; // assume we only get one file at a time
                }
            }
        }
    } catch (FileUploadException e) {
        throw new RuntimeException(e);
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        writer.close();
    }
    return new ModelAndView("usercv");
}

From source file:com.Voxce.Controllers.TrialsController.java

public ModelAndView UploadContract(HttpServletRequest request, HttpServletResponse response) throws Exception {

    if (!ServletFileUpload.isMultipartContent(request)) {

        throw new IllegalArgumentException(
                "Request is not multipart, please 'multipart/form-data' enctype for your form.");
    }/*from w ww  . java 2s  . co  m*/

    ServletFileUpload uploadHandler = new ServletFileUpload(new DiskFileItemFactory());
    PrintWriter writer = response.getWriter();
    response.setContentType("text/plain");

    List<FileItem> Contractitems;

    try {
        Contractitems = uploadHandler.parseRequest(request);
        for (FileItem item2 : Contractitems) {
            if (!item2.isFormField()) {
                if (item2.getSize() > 9999000) {
                    writer.write("{\"name\":\"" + "Sorry File Size is larger then 9 MB" + "\",\"type\":\""
                            + item2.getContentType() + "\",\"size\":\"" + item2.getSize() + "\"}");
                    break; // assume we only get one file at a time
                } else {
                    Contractitem = item2;
                    System.out.println("Name =" + item2.getName() + "  Size=" + item2.getSize() + " type ="
                            + item2.getContentType());
                    writer.write("{\"name\":\"" + item2.getName() + "\",\"type\":\"" + item2.getContentType()
                            + "\",\"size\":\"" + item2.getSize() + "\"}");
                    break; // assume we only get one file at a time
                }
            }
        }
    } catch (FileUploadException e) {
        throw new RuntimeException(e);
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        writer.close();
    }

    return new ModelAndView("contracts");
}