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

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

Introduction

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

Prototype

String getContentType();

Source Link

Document

Returns the content type passed by the browser or null if not defined.

Usage

From source file:org.jahia.ajax.gwt.content.server.GWTFileManagerUploadServlet.java

private void storeUploadedFile(String sessionID, final FileItem fileItem) {
    try {//w w w  .j  av a 2s  .c om
        final InputStream contentStream = new BufferedInputStream(fileItem.getInputStream());
        try {
            getFileStorage().put(sessionID, fileItem.getName(), new UploadedPendingFile() {

                @Override
                public String getContentType() {
                    return fileItem.getContentType();
                }

                @Override
                public InputStream getContentStream() {
                    return contentStream;
                }

                @Override
                public void close() {
                }
            });
        } finally {
            contentStream.close();
        }
    } catch (IOException e) {
        throw new JahiaRuntimeException(e);
    }
}

From source file:org.jahia.ajax.gwt.content.server.GWTFileManagerUploadServlet.java

private int saveToJcr(JahiaUser user, FileItem item, String location, StringBuilder name) throws IOException {

    String filename = name.toString();
    if (logger.isDebugEnabled()) {
        logger.debug("item : " + item);
        logger.debug("destination : " + location);
        logger.debug("filename : " + filename);
        logger.debug("size : " + item.getSize());
    }/*  www  .ja v a2s . c o m*/
    if (item == null || location == null || filename == null) {
        return UNKNOWN_ERROR;
    }

    JCRNodeWrapper locationFolder;
    try {
        locationFolder = JCRSessionFactory.getInstance().getCurrentUserSession().getNode(location);
    } catch (RepositoryException e) {
        logger.error(e.toString(), e);
        return BAD_LOCATION;
    }

    if (!locationFolder.hasPermission("jcr:addChildNodes") || locationFolder.isLocked()) {
        logger.debug("destination is not writable for user " + user.getName());
        return READONLY;
    }
    try {
        if (locationFolder.hasNode(JCRContentUtils.escapeLocalNodeName(filename))) {
            return EXISTS;
        }
        InputStream is = item.getInputStream();
        try {
            boolean versioningAvailable = false;
            if (locationFolder.getProvider().isVersioningAvailable()) {
                versioningAvailable = true;
            }
            if (versioningAvailable) {
                locationFolder.getSession().checkout(locationFolder);
            }
            JCRNodeWrapper node = locationFolder.uploadFile(filename, is,
                    JCRContentUtils.getMimeType(filename, item.getContentType()));
            node.getSession().save();
            if (!node.getName().equals(filename)) {
                name.delete(0, name.length());
                name.append(node.getName());
            }
            // Handle potential move of the node after save
            node = node.getSession().getNodeByIdentifier(node.getIdentifier());
            if (node.getProvider().isVersioningAvailable()) {
                node.checkpoint();
                JCRVersionService.getInstance().addVersionLabel(node, VersioningHelper
                        .getVersionLabel(node.getProperty("jcr:created").getDate().getTime().getTime()));
            }
        } finally {
            IOUtils.closeQuietly(is);
        }
        locationFolder.saveSession();
    } catch (RepositoryException e) {
        logger.error("exception ", e);
        return UNKNOWN_ERROR;
    }
    return OK;
}

From source file:org.jamwiki.servlets.UploadServlet.java

/**
 *
 *//*from w  ww  .  j av  a  2 s.  c  o  m*/
private void upload(HttpServletRequest request, ModelAndView next, WikiPageInfo pageInfo) throws Exception {
    String virtualWiki = pageInfo.getVirtualWikiName();
    List<FileItem> fileItems = ServletUtil.processMultipartRequest(request);
    String filename = null;
    String destinationFilename = null;
    String contentType = null;
    long fileSize = 0;
    String contents = null;
    boolean isImage = true;
    File uploadedFile = null;
    String url = null;
    byte buff[] = null;
    for (FileItem fileItem : fileItems) {
        String fieldName = fileItem.getFieldName();
        if (fileItem.isFormField()) {
            if (fieldName.equals("description")) {
                // FIXME - these should be parsed
                contents = fileItem.getString("UTF-8");
            } else if (fieldName.equals("destination")) {
                destinationFilename = fileItem.getString("UTF-8");
            }
            continue;
        }
        // file name can have encoding issues, so manually convert
        filename = fileItem.getName();
        if (filename == null) {
            throw new WikiException(new WikiMessage("upload.error.filename"));
        }
        filename = ImageUtil.sanitizeFilename(filename);
        url = ImageUtil.generateFileUrl(virtualWiki, filename, null);
        if (!ImageUtil.isFileTypeAllowed(filename)) {
            String extension = FilenameUtils.getExtension(filename);
            throw new WikiException(new WikiMessage("upload.error.filetype", extension));
        }
        fileSize = fileItem.getSize();
        contentType = fileItem.getContentType();
        if (ImageUtil.isImagesOnFS()) {
            uploadedFile = ImageUtil.buildAbsoluteFile(url);
            fileItem.write(uploadedFile);
            isImage = ImageUtil.isImage(uploadedFile);
        } else {
            buff = fileItem.get();
        }
    }
    if (ImageUtil.isImagesOnFS() && uploadedFile == null) {
        throw new WikiException(new WikiMessage("upload.error.filenotfound"));
    }
    destinationFilename = processDestinationFilename(virtualWiki, destinationFilename, filename);
    String pageName = ImageUtil
            .generateFilePageName((!StringUtils.isEmpty(destinationFilename) ? destinationFilename : filename));
    if (this.handleSpam(request, pageInfo, pageName, contents, null)) {
        if (ImageUtil.isImagesOnFS()) {
            // delete the spam file
            uploadedFile.delete();
        }
        this.view(request, next, pageInfo);
        next.addObject("contents", contents);
        return;
    }
    if (!StringUtils.isEmpty(destinationFilename)) {
        // rename the uploaded file if a destination file name was specified
        filename = ImageUtil.sanitizeFilename(destinationFilename);
        url = ImageUtil.generateFileUrl(virtualWiki, filename, null);
        if (ImageUtil.isImagesOnFS()) {
            File renamedFile = ImageUtil.buildAbsoluteFile(url);
            if (!uploadedFile.renameTo(renamedFile)) {
                throw new WikiException(new WikiMessage("upload.error.filerename", destinationFilename));
            }
        }
    }
    ImageData imageData = null;
    if (!ImageUtil.isImagesOnFS()) {
        imageData = processImageData(contentType, buff);
        isImage = (imageData.width >= 0);
    }
    String ipAddress = ServletUtil.getIpAddress(request);
    WikiUser user = ServletUtil.currentWikiUser();
    Topic topic = ImageUtil.writeImageTopic(virtualWiki, pageName, contents, user, isImage, ipAddress);
    WikiFileVersion wikiFileVersion = new WikiFileVersion();
    wikiFileVersion.setUploadComment(topic.getTopicContent());
    ImageUtil.writeWikiFile(topic, wikiFileVersion, user, ipAddress, filename, url, contentType, fileSize,
            imageData);
    ServletUtil.redirect(next, virtualWiki, topic.getName());
}

From source file:org.jaxygen.http.HttpRequestParser.java

/**
 * @param item File item passed in request.
 * @throws Exception ./* w w w . jav a2  s.  com*/
 */
private void processUploadedFile(final FileItem item) throws Exception {
    String fieldName = item.getFieldName();
    String fileName = item.getName();
    String contentType = item.getContentType();
    // boolean isInMemory = item.isInMemory();
    long sizeInBytes = item.getSize();
    // skipp moving files without name - assume as error
    if (fileName.length() > 0) {
        //System.out.println("File upload: " + fieldName + " " + fileName + " "
        //    + contentType + " " + sizeInBytes);

        UploadedFile upf = new UploadedFile(item);
        //upf.setFile(uploadedFile);
        upf.setMimeType(contentType);
        upf.setOriginalName(fileName);
        files.put(fieldName, upf);
    }
}

From source file:org.jbpm.bpel.web.DeploymentServlet.java

private FileItem parseProcessArchive(FileItem processItem) throws ServletException {
    if (!PARAM_PROCESS_ARCHIVE.equals(processItem.getFieldName())) {
        throw new ServletException(
                "expected parameter '" + PARAM_PROCESS_ARCHIVE + "', found: " + processItem.getFieldName());
    }/* ww  w .  ja v a  2s  .c o  m*/

    if (processItem.isFormField()) {
        throw new ServletException("parameter '" + PARAM_PROCESS_ARCHIVE + "' is not an uploaded file");
    }

    String contentType = processItem.getContentType();
    if (!contentType.startsWith(WebConstants.CONTENT_TYPE_ZIP)
            && !contentType.startsWith(WebConstants.CONTENT_TYPE_X_ZIP_COMPRESSED)) {
        throw new ServletException("parameter '" + PARAM_PROCESS_ARCHIVE
                + "' is expected to have content type '" + WebConstants.CONTENT_TYPE_ZIP + "' or '"
                + WebConstants.CONTENT_TYPE_X_ZIP_COMPRESSED + "', found: " + contentType);
    }

    return processItem;
}

From source file:org.jbpm.bpel.web.RegistrationServlet.java

private InputStream parseDescriptionFile(FileItem descriptionItem) throws ServletException, IOException {
    if (!PARAM_DESCRIPTION_FILE.equals(descriptionItem.getFieldName())) {
        throw new ServletException("expected parameter '" + PARAM_DESCRIPTION_FILE + "', found: "
                + descriptionItem.getFieldName());
    }/* w  w  w.  ja  v a2 s.  co m*/

    if (descriptionItem.isFormField()) {
        throw new ServletException("parameter '" + PARAM_DESCRIPTION_FILE + "' is not an uploaded file");
    }

    if (descriptionItem.getSize() == 0)
        return null;

    String contentType = descriptionItem.getContentType();
    if (!contentType.startsWith(WebConstants.CONTENT_TYPE_XML)) {
        throw new ServletException(
                "parameter '" + PARAM_DESCRIPTION_FILE + "' is expected to have content type '"
                        + WebConstants.CONTENT_TYPE_XML + "', found: " + contentType);
    }

    return descriptionItem.getInputStream();
}

From source file:org.jbpm.web.ProcessUploadServlet.java

private String handleRequest(HttpServletRequest request) {
    //check if request is multipart content
    log.debug("Handling upload request");
    if (!FileUpload.isMultipartContent(request)) {
        log.debug("Not a multipart request");
        return "Not a multipart request";
    }/* w w w .j  av a2  s  .  c om*/

    try {
        DiskFileUpload fileUpload = new DiskFileUpload();
        List list = fileUpload.parseRequest(request);
        log.debug("Upload from GPD");
        Iterator iterator = list.iterator();
        if (!iterator.hasNext()) {
            log.debug("No process file in the request");
            return "No process file in the request";
        }
        FileItem fileItem = (FileItem) iterator.next();
        if (fileItem.getContentType().indexOf("application/x-zip-compressed") == -1) {
            log.debug("Not a process archive");
            return "Not a process archive";
        }
        try {
            log.debug("Deploying process archive " + fileItem.getName());
            ZipInputStream zipInputStream = new ZipInputStream(fileItem.getInputStream());
            JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
            log.debug("Preparing to parse process archive");
            ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
            log.debug("Created a processdefinition : " + processDefinition.getName());
            jbpmContext.deployProcessDefinition(processDefinition);
            zipInputStream.close();
            return "Deployed archive " + processDefinition.getName() + " successfully";
        } catch (IOException e) {
            log.debug("Failed to read process archive", e);
            return "IOException";
        }
    } catch (FileUploadException e) {
        log.debug("Failed to parse HTTP request", e);
        return "FileUploadException";
    }
}

From source file:org.jcommon.com.wechat.servlet.MediaServlet.java

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");

    String errormsg = null;//from   ww  w . ja va2 s .  co  m
    List<FileItem> list = new ArrayList<FileItem>();
    List<UrlObject> urls = new ArrayList<UrlObject>();
    if (ServletFileUpload.isMultipartContent(request)) {
        FileItem item = null;
        try {
            ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
            @SuppressWarnings("unchecked")
            List<FileItem> items = upload.parseRequest(request);
            Iterator<FileItem> it = items.iterator();
            while (it.hasNext()) {
                item = it.next();
                if (!item.isFormField()) {
                    list.add(item);
                }
            }
        } catch (Throwable e) {
            logger.error("", e);
            errormsg = "transfer exception";
        }
    } else {
        errormsg = "not found multipart content";
    }
    if (errormsg != null) {
        error(response, errormsg);
        return;
    }
    for (FileItem item : list) {
        try {
            String file_name = item.getName();
            String file_id = org.jcommon.com.util.BufferUtils.generateRandom(20);
            String content_type = item.getContentType();

            Media media = new Media();
            media.setContent_type(content_type);
            media.setMedia_id(file_id);
            media.setMedia_name(file_name);

            FileOutputStream out_file = null;
            java.io.File file = MediaManager.getMedia_factory().createEmptyFile(media);
            media.setMedia(file);
            out_file = new FileOutputStream(file);
            InputStream is = item.getInputStream();
            logger.info("uploading...........");
            byte[] b = new byte[1024];
            int nRead;
            while ((nRead = is.read(b, 0, 1024)) > 0) {
                out_file.write(b, 0, nRead);
            }
            try {
                out_file.close();
                out_file.flush();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                file.delete();
                throw e1;
            }
            try {
                is.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                throw e;
            }
            String url = MediaManager.getMedia_factory().createUrl(media).getUrl();
            logger.info(url);
            urls.add(new UrlObject(url));

        } catch (Throwable e) {
            logger.error("", e);
            errormsg = "transfer exception";
        }
    }
    if (errormsg != null) {
        error(response, errormsg);
        return;
    } else {
        String msg = "";
        if (urls.size() > 0) {
            if (urls.size() == 1)
                msg = urls.get(0).toJson();
            else
                msg = org.jcommon.com.util.JsonObject.list2Json(urls);
        }
        logger.info(msg);
        response.getWriter().println(msg);
    }
}

From source file:org.jcrportlet.jcr.JCRBrowser.java

public Node uploadItem(String folderName, FileItem file) {
    Node folderNode, fileNode;//from  w ww. jav  a 2 s  .  c  o m
    folderNode = this.createNode(folderName);
    try {
        try {
            fileNode = folderNode.getNode(file.getName());
            if (fileNode != null)
                return fileNode;
        } catch (PathNotFoundException e) {
            //            String mimeType = new MimetypesFileTypeMap().getContentType(file);
            String mimeType = file.getContentType();
            fileNode = folderNode.addNode(file.getName(), NT_FILE);
            Node resNode = fileNode.addNode(JCR_CONTENT, NT_RESOURCE);
            resNode.setProperty(JCR_MIMETYPE, mimeType);
            resNode.setProperty(JCR_ENCODING, "");
            try {
                resNode.setProperty(JCR_DATA, file.getInputStream());
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            Calendar lastModified = Calendar.getInstance();
            //            lastModified.setTimeInMillis(file.lastModified());
            resNode.setProperty(JCR_LAST_MODIFIED, lastModified);
            fileNode.getSession().save();
            resNode.getSession().save();
            return fileNode;
        }
    } catch (RepositoryException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.jxstar.control.action.ActionHelper.java

/**
 * ?//from  w  ww  .j  a  va2s.c o  m
 * @param request
 * @return
 */
private static Map<String, Object> parseMultiRequest(HttpServletRequest request) throws ActionException {
    //?
    DefaultFileItemFactory factory = new DefaultFileItemFactory();
    //?
    DiskFileUpload upload = new DiskFileUpload(factory);
    //????
    upload.setHeaderEncoding("utf-8");
    //?10M
    String maxSize = SystemVar.getValue("upload.file.maxsize", "10");
    upload.setSizeMax(1000 * 1000 * Integer.parseInt(maxSize));
    //?
    List<FileItem> items = null;
    try {
        items = upload.parseRequest(request);
    } catch (FileUploadException e) {
        _log.showError(e);
        throw new ActionException(JsMessage.getValue("fileaction.overmaxsize"), maxSize);
    }
    _log.showDebug("request item size=" + items.size());

    //
    Map<String, Object> requestMap = FactoryUtil.newMap();
    // ?
    Iterator<FileItem> iter = items.iterator();
    while (iter.hasNext()) {
        FileItem item = iter.next();
        if (item.isFormField()) {
            String key = item.getFieldName();
            //?????
            String value = "";
            try {
                value = item.getString("utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            if (key == null || key.length() == 0)
                continue;
            requestMap.put(key, value);
        } else {
            String key = item.getFieldName();
            requestMap.put(key, item);
            //??
            String fileName = item.getName();
            String contentType = item.getContentType();
            long fileSize = item.getSize();
            _log.showDebug(
                    "request filename=" + fileName + ";fileSize=" + fileSize + ";contentType=" + contentType);
        }
    }

    return requestMap;
}