Example usage for org.apache.commons.fileupload FileItemStream getFieldName

List of usage examples for org.apache.commons.fileupload FileItemStream getFieldName

Introduction

In this page you can find the example usage for org.apache.commons.fileupload FileItemStream getFieldName.

Prototype

String getFieldName();

Source Link

Document

Returns the name of the field in the multipart form corresponding to this file item.

Usage

From source file:org.artags.server.web.TagUploadServlet.java

@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    try {//  ww  w  .ja v a2s.co  m
        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload();
        upload.setSizeMax(1000000);
        res.setContentType(Constants.CONTENT_TYPE_TEXT);
        PrintWriter out = res.getWriter();

        byte[] image = null;
        byte[] thumbnail = null;

        Tag tag = new Tag();
        TagImage tagImage = new TagImage();
        TagThumbnail tagThumbnail = new TagThumbnail();
        String contentType = null;
        boolean bLandscape = false;

        try {
            FileItemIterator iterator = upload.getItemIterator(req);
            while (iterator.hasNext()) {
                FileItemStream item = iterator.next();
                InputStream in = item.openStream();

                if (item.isFormField()) {
                    if (Constants.PARAMATER_NAME.equals(item.getFieldName())) {
                        String name = IOUtils.toString(in, "UTF-8");
                        tag.setName(name);
                    }
                    if (Constants.PARAMATER_LAT.equals(item.getFieldName())) {
                        tag.setLat(Double.parseDouble(IOUtils.toString(in)));
                    }
                    if (Constants.PARAMATER_LON.equals(item.getFieldName())) {
                        tag.setLon(Double.parseDouble(IOUtils.toString(in)));
                    }
                    if (Constants.PARAMATER_LANDSCAPE.equals(item.getFieldName())) {
                        bLandscape = IOUtils.toString(in).equals("on");
                    }
                } else {
                    String fieldName = item.getFieldName();
                    String fileName = item.getName();
                    contentType = item.getContentType();

                    try {
                        if (fieldName.equals("thumbnail")) {
                            thumbnail = IOUtils.toByteArray(in);
                        } else {
                            image = IOUtils.toByteArray(in);
                        }
                    } finally {
                        IOUtils.closeQuietly(in);
                    }

                }
            }
        } catch (SizeLimitExceededException e) {
            out.println("You exceeded the maximum size (" + e.getPermittedSize() + ") of the file ("
                    + e.getActualSize() + ")");
        }

        contentType = (contentType != null) ? contentType : "image/jpeg";

        if (bLandscape) {
            image = rotate(image);
            if (thumbnail != null) {
                thumbnail = rotate(thumbnail);
            }
        }
        tagImage.setImage(image);
        tagImage.setContentType(contentType);
        if (thumbnail != null) {
            tagThumbnail.setImage(thumbnail);
        } else {
            tagThumbnail.setImage(createThumbnail(image));
        }

        tagThumbnail.setContentType(contentType);

        TagImageDAO daoImage = new TagImageDAO();
        daoImage.create(tagImage);

        TagThumbnailDAO daoThumbnail = new TagThumbnailDAO();
        daoThumbnail.create(tagThumbnail);

        TagDAO dao = new TagDAO();
        tag.setKeyImage(tagImage.getKey());
        tag.setKeyThumbnail(tagThumbnail.getKey());
        tag.setDate(new Date().getTime());
        tag.setDateUpdate(new Date().getTime());
        Tag newTag = dao.create(tag);
        out.print("" + newTag.getKey().getId());
        out.close();
        CacheService.instance().invalidate();

    } catch (Exception ex) {

        throw new ServletException(ex);
    }
}

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

@Override
public void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    if (request.getHeader("Origin") != null
            && !getBimServer().getServerSettingsCache().isHostAllowed(request.getHeader("Origin"))) {
        response.setStatus(403);//ww  w .  java  2s  .  c om
        return;
    }
    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Headers", "Content-Type");

    String token = (String) request.getSession().getAttribute("token");

    ObjectNode result = OBJECT_MAPPER.createObjectNode();
    response.setContentType("text/json");
    try {
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        long poid = -1;
        String comment = null;
        if (isMultipart) {
            ServletFileUpload upload = new ServletFileUpload();
            FileItemIterator iter = upload.getItemIterator(request);
            InputStream in = null;
            String name = "";
            long deserializerOid = -1;
            boolean merge = false;
            boolean sync = false;
            String compression = null;
            String action = null;
            long topicId = -1;
            while (iter.hasNext()) {
                FileItemStream item = iter.next();
                if (item.isFormField()) {
                    if ("action".equals(item.getFieldName())) {
                        action = Streams.asString(item.openStream());
                    } else if ("token".equals(item.getFieldName())) {
                        token = Streams.asString(item.openStream());
                    } else if ("poid".equals(item.getFieldName())) {
                        poid = Long.parseLong(Streams.asString(item.openStream()));
                    } else if ("comment".equals(item.getFieldName())) {
                        comment = Streams.asString(item.openStream());
                    } else if ("topicId".equals(item.getFieldName())) {
                        topicId = Long.parseLong(Streams.asString(item.openStream()));
                    } else if ("sync".equals(item.getFieldName())) {
                        sync = Streams.asString(item.openStream()).equals("true");
                    } else if ("merge".equals(item.getFieldName())) {
                        merge = Streams.asString(item.openStream()).equals("true");
                    } else if ("compression".equals(item.getFieldName())) {
                        compression = Streams.asString(item.openStream());
                    } else if ("deserializerOid".equals(item.getFieldName())) {
                        deserializerOid = Long.parseLong(Streams.asString(item.openStream()));
                    }
                } else {
                    name = item.getName();
                    in = item.openStream();

                    if ("file".equals(action)) {
                        ServiceInterface serviceInterface = getBimServer().getServiceFactory()
                                .get(token, AccessMethod.INTERNAL).get(ServiceInterface.class);
                        SFile file = new SFile();
                        byte[] data = IOUtils.toByteArray(in);
                        file.setData(data);
                        file.setSize(data.length);
                        file.setFilename(name);
                        file.setMime(item.getContentType());
                        result.put("fileId", serviceInterface.uploadFile(file));
                    } else if (poid != -1) {
                        InputStream realStream = null;
                        if ("gzip".equals(compression)) {
                            realStream = new GZIPInputStream(in);
                        } else if ("deflate".equals(compression)) {
                            realStream = new InflaterInputStream(in);
                        } else {
                            realStream = in;
                        }
                        InputStreamDataSource inputStreamDataSource = new InputStreamDataSource(realStream);
                        inputStreamDataSource.setName(name);
                        DataHandler ifcFile = new DataHandler(inputStreamDataSource);

                        if (token != null) {
                            if (topicId == -1) {
                                ServiceInterface service = getBimServer().getServiceFactory()
                                        .get(token, AccessMethod.INTERNAL).get(ServiceInterface.class);
                                long newTopicId = service.checkin(poid, comment, deserializerOid, -1L, name,
                                        ifcFile, merge, sync);
                                result.put("topicId", newTopicId);
                            } else {
                                ServiceInterface service = getBimServer().getServiceFactory()
                                        .get(token, AccessMethod.INTERNAL).get(ServiceInterface.class);
                                long newTopicId = service.checkinInitiated(topicId, poid, comment,
                                        deserializerOid, -1L, name, ifcFile, merge, true);
                                result.put("topicId", newTopicId);
                            }
                        }
                    } else {
                        result.put("exception", "No poid");
                    }
                }
            }
        }
    } catch (Exception e) {
        LOGGER.error("", e);
        sendException(response, e);
        return;
    }
    response.getWriter().write(result.toString());
}

From source file:org.bonitasoft.engine.api.internal.servlet.ServletCall.java

/**
 * Default constructor./*from w ww . j  av a2 s.  c om*/
 * 
 * @param request
 *        The request made to access this servletCall.
 * @param response
 *        The response to return.
 * @throws IOException
 * @throws FileUploadException
 */
public ServletCall(final HttpServletRequest request, final HttpServletResponse response)
        throws FileUploadException, IOException {
    super();
    this.request = request;
    this.response = response;
    parameters = new HashMap<String, String>();
    binaryParameters = new ArrayList<byte[]>();
    if (ServletFileUpload.isMultipartContent(request)) {
        final ServletFileUpload upload = new ServletFileUpload();
        // Parse the request
        final FileItemIterator iter = upload.getItemIterator(request);
        while (iter.hasNext()) {
            try {
                final FileItemStream item = iter.next();
                final InputStream stream = item.openStream();
                String fieldName = item.getFieldName();
                if (fieldName.startsWith(BINARY_PARAMETER)) {
                    binaryParameters.add(IOUtil.getAllContentFrom(stream));
                } else {
                    String read = IOUtil.read(stream);
                    parameters.put(fieldName, read);
                }
                stream.close();
            } catch (final Exception t) {
                throw new IOException(t);
            }
        }
    } else {
        final Map<String, String[]> parameterMap = this.request.getParameterMap();
        final Set<Entry<String, String[]>> entrySet = parameterMap.entrySet();
        for (final Entry<String, String[]> entry : entrySet) {
            parameters.put(entry.getKey(), entry.getValue()[0]);
        }
    }
}

From source file:org.brutusin.rpc.http.RpcServlet.java

/**
 *
 * @param req//from  w w  w .  jav  a2s .c om
 * @return
 * @throws IOException
 */
private static Map<String, String[]> parseMultipartParameters(HttpServletRequest req) throws IOException {
    if (isMultipartContent(req)) {
        Map<String, String[]> multipartParameters = new HashMap();
        Map<String, List<String>> map = new HashMap();
        try {
            ServletFileUpload upload = new ServletFileUpload();
            FileItemIterator iter = upload.getItemIterator(req);
            req.setAttribute(REQ_ATT_MULTIPART_ITERATOR, iter);
            while (iter.hasNext()) {
                FileItemStream item = iter.next();
                if (!item.isFormField()) {
                    req.setAttribute(REQ_ATT_MULTIPART_CURRENT_ITEM, item);
                    break;
                }
                List<String> list = map.get(item.getFieldName());
                if (list == null) {
                    list = new ArrayList();
                    map.put(item.getFieldName(), list);
                }
                String encoding = req.getCharacterEncoding();
                if (encoding == null) {
                    encoding = "UTF-8";
                }
                list.add(Miscellaneous.toString(item.openStream(), encoding));
            }
        } catch (FileUploadException ex) {
            throw new RuntimeException(ex);
        }
        for (Map.Entry<String, List<String>> entrySet : map.entrySet()) {
            String key = entrySet.getKey();
            List<String> value = entrySet.getValue();
            multipartParameters.put(key, value.toArray(new String[value.size()]));
        }
        return multipartParameters;
    }
    return null;
}

From source file:org.brutusin.rpc.http.RpcServlet.java

/**
 *
 * @param req// ww w. j  a  v  a 2 s  .  c  o m
 * @param rpcRequest
 * @param service
 * @return
 * @throws Exception
 */
private Map<String, InputStream> getStreams(HttpServletRequest req, RpcRequest rpcRequest, HttpAction service)
        throws Exception {
    if (!FileUploadBase.isMultipartContent(new ServletRequestContext(req))) {
        return null;
    }
    int streamsNumber = getInputStreamsNumber(rpcRequest, service);
    boolean isResponseStreamed = service.isBinaryResponse();
    FileItemIterator iter = (FileItemIterator) req.getAttribute(REQ_ATT_MULTIPART_ITERATOR);
    int count = 0;
    final Map<String, InputStream> map = new HashMap();
    final File tempDirectory;
    if (streamsNumber > 1 || streamsNumber == 1 && isResponseStreamed) {
        tempDirectory = createTempUploadDirectory();
        req.setAttribute(REQ_ATT_TEMPORARY_FOLDER, tempDirectory);
    } else {
        tempDirectory = null;
    }
    FileItemStream item = (FileItemStream) req.getAttribute(REQ_ATT_MULTIPART_CURRENT_ITEM);
    long availableLength = RpcConfig.getInstance().getMaxRequestSize();
    while (item != null) {
        count++;
        long maxLength = Math.min(availableLength, RpcConfig.getInstance().getMaxFileSize());
        if (count < streamsNumber || isResponseStreamed) { // if response is streamed all inputstreams have to be readed first
            File file = new File(tempDirectory, item.getFieldName());
            FileOutputStream fos = new FileOutputStream(file);
            try {
                Miscellaneous.pipeSynchronously(new LimitedLengthInputStream(item.openStream(), maxLength),
                        fos);
            } catch (MaxLengthExceededException ex) {
                if (maxLength == RpcConfig.getInstance().getMaxFileSize()) {
                    throw new MaxLengthExceededException(
                            "Upload part '" + item.getFieldName() + "' exceeds maximum length ("
                                    + RpcConfig.getInstance().getMaxFileSize() + " bytes)",
                            RpcConfig.getInstance().getMaxFileSize());
                } else {
                    throw new MaxLengthExceededException("Request exceeds maximum length ("
                            + RpcConfig.getInstance().getMaxRequestSize() + " bytes)",
                            RpcConfig.getInstance().getMaxRequestSize());
                }
            }
            map.put(item.getFieldName(), new MetaDataInputStream(new FileInputStream(file), item.getName(),
                    item.getContentType(), file.length(), null));
            availableLength -= file.length();
        } else if (count == streamsNumber) {
            map.put(item.getFieldName(),
                    new MetaDataInputStream(new LimitedLengthInputStream(item.openStream(), maxLength),
                            item.getName(), item.getContentType(), null, null));
            break;
        }
        req.setAttribute(REQ_ATT_MULTIPART_CURRENT_ITEM, item);
        if (iter.hasNext()) {
            item = iter.next();
        } else {
            item = null;
        }
    }
    if (count != streamsNumber) {
        throw new IllegalArgumentException("Invalid multipart request received. Number of uploaded files ("
                + count + ") does not match expected (" + streamsNumber + ")");
    }
    return map;
}

From source file:org.cellprofiler.subimager.ImageWriterHandler.java

public void handle(HttpExchange exchange) throws IOException {
    if (!exchange.getRequestMethod().equals("POST")) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_METHOD,
                "<html><body>writeimage only accepts HTTP post</body></html>");
        return;/*from  w  w w  .ja  v  a2 s  . com*/
    }
    final String contentType = exchange.getRequestHeaders().getFirst("Content-Type");
    if (contentType == null) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                "<html><body>No Content-type request header</body></html>");
        return;
    }
    if (!contentType.startsWith(MULTIPART_FORM_DATA)) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                "<html><body>Content type must be " + MULTIPART_FORM_DATA + ".</body></html>");
        return;
    }
    int idx = contentType.indexOf(BOUNDARY_EQUALS, MULTIPART_FORM_DATA.length());
    if (idx == -1) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                "<html><body>Did not find boundary identifier in multipart/form-data content type.</body></html>");
        return;
    }
    final String contentEncoding = exchange.getRequestHeaders().getFirst("Content-Encoding");
    String contentLengthString = exchange.getRequestHeaders().getFirst("Content-Length");
    if (contentLengthString == null) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                "<html><body>No Content-Length request header</body></html>");
        return;
    }
    try {
        Integer.parseInt(contentLengthString);
    } catch (NumberFormatException e) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST, String
                .format("<html><body>Content length was not a number: %s</body></html>", contentLengthString));
        return;
    }
    final int contentLength = Integer.parseInt(contentLengthString);
    final InputStream requestBodyStream = exchange.getRequestBody();
    FileUpload upload = new FileUpload();
    FileItemIterator fileItemIterator;
    String omeXML = null;
    URI uri = null;
    int index = 0;
    NDImage ndimage = null;
    String compression = DEFAULT_COMPRESSION;
    try {
        fileItemIterator = upload.getItemIterator(new RequestContext() {

            public String getCharacterEncoding() {
                return contentEncoding;
            }

            public String getContentType() {
                return contentType;
            }

            public int getContentLength() {
                return contentLength;
            }

            public InputStream getInputStream() throws IOException {
                return requestBodyStream;
            }
        });
        while (fileItemIterator.hasNext()) {
            FileItemStream fis = fileItemIterator.next();
            String name = fis.getFieldName();

            if (name.equals(NAME_IMAGE)) {
                String imageContentType = fis.getContentType();
                if (imageContentType == null) {
                    reportError(exchange, HttpURLConnection.HTTP_UNSUPPORTED_TYPE,
                            "<html><body>Image form-data field must have a content type.</body></html>");
                    return;
                }
                try {
                    InputStream is = SubimagerUtils.getInputStream(exchange, fis);
                    if (is == null)
                        return;
                    ndimage = NDImage.decode(is);
                } catch (MalformedStreamException e) {
                    reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                            "<html><body>Failed to read body for part, " + name + ".</body></html>");
                } catch (IOException e) {
                    reportError(exchange, HttpURLConnection.HTTP_INTERNAL_ERROR,
                            "<html><body>Failed to read multipart body data</body></html>");
                    return;
                } catch (org.cellprofiler.subimager.NDImage.FormatException e) {
                    reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                            "<html><body>Image data was not in correct format: " + e.getMessage()
                                    + "</body></html>");
                    return;
                }
            } else {
                String partDataString = SubimagerUtils.readFully(exchange, fis);
                if (partDataString == null)
                    return;
                if (name.equals(NAME_INDEX)) {
                    try {
                        index = Integer.parseInt(partDataString);
                    } catch (NumberFormatException e) {
                        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                                "<html><body>Index form-data field must be a number: " + partDataString
                                        + ".</body></html>");
                        return;
                    }
                } else if (name.equals(NAME_OMEXML)) {
                    omeXML = partDataString;
                } else if (name.equals(NAME_URL)) {
                    try {
                        uri = new URI(partDataString);
                    } catch (URISyntaxException e) {
                        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                                "<html><body>Improperly formatted URL: " + partDataString + ".</body></html>");
                        return;
                    }
                } else if (name.equals(NAME_COMPRESSION)) {
                    compression = partDataString;
                }
            }
        }
        if (ndimage == null) {
            reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                    "<html><body>Request did not have an image part</body></html>");
            return;
        }
        if (uri == null) {
            reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                    "<html><body>Request did not have a URL part</body></html>");
            return;
        }
        if (omeXML == null) {
            reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST,
                    "<html><body>Request did not have an omexml part</body></html>");
            return;
        }
        writeImage(exchange, ndimage, uri, omeXML, index, compression);
    } catch (FileUploadException e) {
        reportError(exchange, HttpURLConnection.HTTP_BAD_REQUEST, String
                .format("<html><body>Parsing error in multipart message: %s</body></html>", e.getMessage()));
        return;
    }
}

From source file:org.cellprofiler.subimager.TestImageJHandlerBase.java

protected Response post(Request request, Map<String, NDImage> ndimagesIn, Map<String, NDImage> ndimagesOut) {
    StringWriter writer = new StringWriter();
    try {// w w  w .  ja  v a  2 s. c  o  m
        Marshaller marshaller = new Marshaller(writer);
        marshaller.marshal(request);
    } catch (MarshalException e2) {
        throw new AssertionError(e2.getMessage());
    } catch (ValidationException e2) {
        throw new AssertionError(e2.getMessage());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        throw new AssertionError(e.getMessage());
    }
    String xml = writer.toString();

    ArrayList<Part> parts = new ArrayList<Part>();
    parts.add(new StringPart(ImageJHandler.NAME_REQUEST, xml));
    String sURL = String.format("http://localhost:%d/imagej", getPort());
    final PostMethod post = new PostMethod(sURL);
    for (Map.Entry<String, NDImage> entry : ndimagesIn.entrySet()) {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            entry.getValue().encode(bos);
        } catch (IOException e1) {
            e1.printStackTrace();
            throw new AssertionError("Failed to encode image: " + e1.getMessage());
        }
        ByteArrayPartSource src = new ByteArrayPartSource(entry.getKey(), bos.toByteArray());
        FilePart filePart = new FilePart(entry.getKey(), src, "application/octet-stream", "binary");
        parts.add(filePart);
    }
    post.setRequestEntity(new MultipartRequestEntity(parts.toArray(new Part[0]), post.getParams()));
    HttpClient client = new HttpClient();
    int responseCode;
    try {
        responseCode = client.executeMethod(post);
    } catch (HttpException e) {
        throw new AssertionError(e.getMessage());
    } catch (IOException e) {
        throw new AssertionError(e.getMessage());
    }
    assertEquals(HttpURLConnection.HTTP_OK, responseCode);
    final String contentType = post.getResponseHeader("Content-Type").getValue();
    assertTrue(contentType.startsWith("multipart/form-data"));
    final long contentLength = post.getResponseContentLength();
    try {
        final InputStream responseBodyStream = post.getResponseBodyAsStream();
        FileUpload upload = new FileUpload();
        FileItemIterator fileItemIterator;
        fileItemIterator = upload.getItemIterator(new RequestContext() {

            public String getCharacterEncoding() {
                if (post.getResponseHeader("Content-Encoding") == null)
                    return null;
                return post.getResponseHeader("Content-Encoding").getValue();
            }

            public String getContentType() {
                return contentType;
            }

            public int getContentLength() {
                return (int) contentLength;
            }

            InputStream tmpStream = null;

            public InputStream getInputStream() throws IOException {
                if (tmpStream == null) {
                    byte[] buf = new byte[(int) contentLength];
                    int offset = 0;
                    while (offset < buf.length) {
                        offset += responseBodyStream.read(buf, offset, buf.length - offset);
                    }
                    tmpStream = new ByteArrayInputStream(buf);
                }
                return tmpStream;
            }
        });
        assertTrue(fileItemIterator.hasNext());
        FileItemStream fis = fileItemIterator.next();
        assertEquals(fis.getFieldName(), ImageJHandler.NAME_RESPONSE);
        Reader rdr = new InputStreamReader(fis.openStream(), "utf-8");
        Unmarshaller unmarshaller = new Unmarshaller(Response.class);
        unmarshaller.setProperty(XMLProperties.LENIENT_INTEGER_VALIDATION, "true");
        Object oresponse = unmarshaller.unmarshal(rdr);
        assertTrue(oresponse instanceof Response);
        Response response = (Response) oresponse;
        while (fileItemIterator.hasNext()) {
            fis = fileItemIterator.next();
            String name = fis.getFieldName();
            NDImage ndimage = NDImage.decode(fis.openStream());
            ndimagesOut.put(name, ndimage);
        }
        return response;
    } catch (IOException e) {
        e.printStackTrace();
        throw new AssertionError(e.getMessage());
    } catch (FileUploadException e) {
        e.printStackTrace();
        throw new AssertionError(e.getMessage());
    } catch (MarshalException e) {
        e.printStackTrace();
        throw new AssertionError(e.getMessage());
    } catch (ValidationException e) {
        e.printStackTrace();
        throw new AssertionError(e.getMessage());
    } catch (FormatException e) {
        e.printStackTrace();
        throw new AssertionError(e.getMessage());
    }

}

From source file:org.celstec.arlearn2.upload.BlobStoreServlet.java

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    try {//  w  w  w.ja v a2s. c o m
        Long runId = null;
        String account = null;
        ServletFileUpload upload = new ServletFileUpload();
        res.setContentType("text/plain");

        FileItemIterator iterator = upload.getItemIterator(req);

        while (iterator.hasNext()) {
            FileItemStream item = iterator.next();
            InputStream stream = item.openStream();

            if (item.isFormField()) {
                if ("runId".equals(item.getFieldName())) {
                    runId = Long.parseLong(Streams.asString(stream));
                }
                if ("account".equals(item.getFieldName())) {
                    account = Streams.asString(stream);
                }
            } else {
                BlobKey blobkey = storeBlob(item.getContentType(), item.getName(), stream);
                if (blobkey != null) {
                    System.out.println(blobkey);
                    // File exists
                    BlobKey oldkey = FilePathManager.getBlobKey(account, runId, item.getName());
                    if (oldkey != null) {
                        FilePathManager.delete(oldkey);
                        blobstoreService.delete(oldkey);
                    }
                    FilePathManager.addFile(runId, account, item.getName(), blobkey);

                } else {
                    blobkey.toString();
                }

            }
        }
    } catch (Exception ex) {
        throw new ServletException(ex);
    }
}

From source file:org.celstec.arlearn2.upload.BlobStoreServletIncremental.java

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    try {/*w ww . java 2s . c o m*/
        Long runId = null;
        String account = null;
        String serverPath = null;
        boolean last = false;
        ServletFileUpload upload = new ServletFileUpload();
        res.setContentType("text/plain");

        FileItemIterator iterator = upload.getItemIterator(req);
        System.out.println("before while");
        while (iterator.hasNext()) {
            System.out.println("in while");
            FileItemStream item = iterator.next();
            InputStream stream = item.openStream();

            if (item.isFormField()) {
                if ("runId".equals(item.getFieldName())) {
                    runId = Long.parseLong(Streams.asString(stream));
                    System.out.println("runid is " + runId);
                }

                if ("account".equals(item.getFieldName())) {
                    account = Streams.asString(stream);
                    System.out.println("account is " + account);
                }
                if ("last".equals(item.getFieldName())) {
                    last = Boolean.parseBoolean(Streams.asString(stream));
                    System.out.println("last is " + last);
                }
                if ("serverPath".equals(item.getFieldName())) {
                    serverPath = Streams.asString(stream);
                    System.out.println("serverPath is " + serverPath);
                }

            } else {
                log.warning("Got an uploaded file: " + item.getFieldName() + ", name = " + item.getName());
                AppEngineFile file = storeBlob(item.getContentType(), item.getName(), stream, last, serverPath);

                BlobKey blobkey = fileService.getBlobKey(file);
                if (blobkey != null) {
                    // File exists
                    BlobKey oldkey = FilePathManager.getBlobKey(account, runId, item.getName());
                    if (oldkey != null) {
                        FilePathManager.delete(oldkey);
                        blobstoreService.delete(oldkey);
                    }
                    FilePathManager.addFile(runId, account, item.getName(), blobkey);
                    System.out.println(blobkey.toString());
                }
                res.getWriter().write(file.getFullPath());
                //               else {
                //                  blobkey.toString();
                //               }

            }
        }
    } catch (Exception ex) {
        throw new ServletException(ex);
    }
}

From source file:org.celstec.arlearn2.upload.UploadGameServlet.java

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    long gameId = 0l;
    String auth = null;/*from   w  w  w. j  a va2s.com*/
    try {
        ServletFileUpload upload = new ServletFileUpload();
        FileItemIterator iter = upload.getItemIterator(req);

        String json = "";
        while (iter.hasNext()) {
            FileItemStream item = iter.next();
            String name = item.getFieldName();
            InputStream stream = item.openStream();
            if (item.isFormField()) {
                String value = Streams.asString(stream);
                if ("gameId".equals(name))
                    gameId = Long.parseLong(value);
                if ("auth".equals(name))
                    auth = value;

            } else {
                json = Streams.asString(stream);

            }
        }

        res.setContentType("text/plain");
        JSONObject jObject = new JSONObject(json);
        Object deserialized = JsonBeanDeserializer.deserialize(json);

        if (deserialized instanceof GamePackage && ((GamePackage) deserialized).getGame() != null)
            unpackGame((GamePackage) deserialized, req, auth);
        if (deserialized instanceof RunPackage && ((RunPackage) deserialized).getRun() != null)
            unpackRun((RunPackage) deserialized, req, gameId, auth);

    } catch (Exception ex) {
        throw new ServletException(ex);
    }
}