List of usage examples for org.apache.commons.fileupload FileItem getInputStream
InputStream getInputStream() throws IOException;
From source file:org.dspace.app.itemimport.WebServiceImport.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //String command = null; // add replace remove, etc String sourcedir = request.getParameter("dublin_core"); //String mapfile = null; String eperson = request.getParameter("eperson"); // db ID or email //eperson="alex@parliaments.info"; String[] collections = new String[1];//{""};//null; // db ID or handles //collections[0]=request.getParameter("collection"); List<FileDetails> filelist = new ArrayList<FileDetails>(); // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request List /* FileItem */ items = null; try {/*from ww w.j a v a2 s. c o m*/ items = upload.parseRequest(request); } catch (Exception e) { e.printStackTrace(); } // Process the uploaded items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); System.out.println("\n\n\nat while fileitem"); if (item.isFormField()) { //processFormField(item); //if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); if (name.equalsIgnoreCase("collection")) { collections[0] = value; } else if (name.equalsIgnoreCase("eperson")) { eperson = value; } if (name.equalsIgnoreCase("dublin_core")) { sourcedir = value; } //} } else { System.out.println("\n\n\nat while fileitem not from field"); FileDetails fd = new FileDetails(); fd.setIs(item.getInputStream()); fd.setName(item.getName()); filelist.add(fd); for (FileDetails fdd : filelist) { System.out.println("\n\nEcho:" + fdd.getName()); } } } } System.out.println("\n\ncollection is:" + collections[0] + " " + eperson + " " + sourcedir); int status = 0; // do checks around mapfile - if mapfile exists and 'add' is selected, // resume must be chosen //File myFile = new File(mapfile); WebServiceImport myloader = new WebServiceImport(); // create a context Context c = null; try { c = new Context(); } catch (Exception e) { e.printStackTrace(); } // find the EPerson, assign to context EPerson myEPerson = null; if (eperson.indexOf('@') != -1) { // @ sign, must be an email try { myEPerson = EPerson.findByEmail(c, eperson); } catch (Exception e) { e.printStackTrace(); } } else { try { myEPerson = EPerson.find(c, Integer.parseInt(eperson)); } catch (Exception e) { e.printStackTrace(); } } if (myEPerson == null) { System.out.println("Error, eperson cannot be found: " + eperson); //System.exit(1); return; } c.setCurrentUser(myEPerson); // find collections Collection[] mycollections = null; // don't need to validate collections set if command is "delete" //if (!command.equals("delete")) //{ System.out.println("Destination collections:"); System.out.println("\n\nleng" + collections.length); mycollections = new Collection[collections.length]; // validate each collection arg to see if it's a real collection for (int i = 0; i < collections.length; i++) { System.out.println("\n\nlen2:" + collections[0]); // is the ID a handle? //if (collections[i].indexOf('/') != -1) //{ System.out.println("\n\nIs a collection handle"); // string has a / so it must be a handle - try and resolve // it mycollections[i] = null; try { mycollections[i] = (Collection) HandleManager.resolveToObject(c, collections[i]); } catch (Exception e) { e.printStackTrace(); } // resolved, now make sure it's a collection if ((mycollections[i] == null) || (mycollections[i].getType() != Constants.COLLECTION)) { mycollections[i] = null; } //} // not a handle, try and treat it as an integer collection // database ID /*else if (collections[i] != null) { System.out.println("\n\nIs a database Id"); mycollections[i] = null; try { mycollections[i]=Collection.find(c, Integer .parseInt(collections[i])); }catch(Exception e) { e.printStackTrace(); } }*/ // was the collection valid? if (mycollections[i] == null) { throw new IllegalArgumentException("Cannot resolve " + collections[i] + " to collection"); } // print progress info String owningPrefix = ""; if (i == 0) { owningPrefix = "Owning "; } System.out.println("\n\nGotten collection"); System.out.println(owningPrefix + " Collection: " + mycollections[i].getMetadata("name")); } //} // end of validating collections try { c.setIgnoreAuthorization(true); /*if (command.equals("add")) {*/ myloader.addItems(c, mycollections, sourcedir/*, mapfile*/, template, request, filelist); /*}*/ // complete all transactions c.complete(); } catch (Exception e) { // abort all operations /*if (mapOut != null) { mapOut.close(); } mapOut = null;*/ c.abort(); e.printStackTrace(); System.out.println(e); status = 1; } /*if (mapOut != null) { mapOut.close(); }*/ if (isTest) { System.out.println("***End of Test Run***"); } //System.exit(status); return; }
From source file:org.dspace.app.webui.json.SubmissionLookupJSONRequest.java
@Override public void doJSONRequest(Context context, HttpServletRequest req, HttpServletResponse resp) throws AuthorizeException, IOException { Gson json = new Gson(); String suuid = req.getParameter("s_uuid"); SubmissionLookupDTO subDTO = service.getSubmissionLookupDTO(req, suuid); // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(req); if ("identifiers".equalsIgnoreCase(req.getParameter("type"))) { Map<String, Set<String>> identifiers = new HashMap<String, Set<String>>(); Enumeration e = req.getParameterNames(); while (e.hasMoreElements()) { String parameterName = (String) e.nextElement(); String parameterValue = req.getParameter(parameterName); if (parameterName.startsWith("identifier_") && StringUtils.isNotBlank(parameterValue)) { Set<String> set = new HashSet<String>(); set.add(parameterValue); identifiers.put(parameterName.substring("identifier_".length()), set); }/* ww w . jav a2s .c om*/ } List<ItemSubmissionLookupDTO> result = new ArrayList<ItemSubmissionLookupDTO>(); TransformationEngine transformationEngine = service.getPhase1TransformationEngine(); if (transformationEngine != null) { MultipleSubmissionLookupDataLoader dataLoader = (MultipleSubmissionLookupDataLoader) transformationEngine .getDataLoader(); dataLoader.setIdentifiers(identifiers); try { SubmissionLookupOutputGenerator outputGenerator = (SubmissionLookupOutputGenerator) transformationEngine .getOutputGenerator(); outputGenerator.setDtoList(new ArrayList<ItemSubmissionLookupDTO>()); log.debug("BTE transformation is about to start!"); transformationEngine.transform(new TransformationSpec()); log.debug("BTE transformation finished!"); result = outputGenerator.getDtoList(); } catch (BadTransformationSpec e1) { log.error(e1.getMessage(), e1); } catch (MalformedSourceException e1) { log.error(e1.getMessage(), e1); } } subDTO.setItems(result); service.storeDTOs(req, suuid, subDTO); List<Map<String, Object>> dto = getLightResultList(result); JsonElement tree = json.toJsonTree(dto); JsonObject jo = new JsonObject(); jo.add("result", tree); resp.getWriter().write(jo.toString()); } else if ("search".equalsIgnoreCase(req.getParameter("type"))) { String title = req.getParameter("title"); String author = req.getParameter("authors"); int year = UIUtil.getIntParameter(req, "year"); Map<String, Set<String>> searchTerms = new HashMap<String, Set<String>>(); Set<String> tmp1 = new HashSet<String>(); tmp1.add(title); Set<String> tmp2 = new HashSet<String>(); tmp2.add(author); Set<String> tmp3 = new HashSet<String>(); tmp3.add(String.valueOf(year)); searchTerms.put("title", tmp1); searchTerms.put("authors", tmp2); searchTerms.put("year", tmp3); List<ItemSubmissionLookupDTO> result = new ArrayList<ItemSubmissionLookupDTO>(); TransformationEngine transformationEngine = service.getPhase1TransformationEngine(); if (transformationEngine != null) { MultipleSubmissionLookupDataLoader dataLoader = (MultipleSubmissionLookupDataLoader) transformationEngine .getDataLoader(); dataLoader.setSearchTerms(searchTerms); try { SubmissionLookupOutputGenerator outputGenerator = (SubmissionLookupOutputGenerator) transformationEngine .getOutputGenerator(); outputGenerator.setDtoList(new ArrayList<ItemSubmissionLookupDTO>()); log.debug("BTE transformation is about to start!"); transformationEngine.transform(new TransformationSpec()); log.debug("BTE transformation finished!"); result = outputGenerator.getDtoList(); } catch (BadTransformationSpec e1) { log.error(e1.getMessage(), e1); } catch (MalformedSourceException e1) { log.error(e1.getMessage(), e1); } } subDTO.setItems(result); service.storeDTOs(req, suuid, subDTO); List<Map<String, Object>> dto = getLightResultList(result); JsonElement tree = json.toJsonTree(dto); JsonObject jo = new JsonObject(); jo.add("result", tree); resp.getWriter().write(jo.toString()); } else if ("details".equalsIgnoreCase(req.getParameter("type"))) { String i_uuid = req.getParameter("i_uuid"); Map<String, Object> dto = getDetails(subDTO.getLookupItem(i_uuid), context); JsonElement tree = json.toJsonTree(dto); JsonObject jo = new JsonObject(); jo.add("result", tree); resp.getWriter().write(jo.toString()); } else if (isMultipart) { // Create a factory for disk-based file items FileItemFactory factory = new DiskFileItemFactory(); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request Map<String, String> valueMap = new HashMap<String, String>(); InputStream io = null; // Parse the request List<FileItem> iter; String filename = null; try { iter = upload.parseRequest(req); for (FileItem item : iter) { String name = item.getFieldName(); InputStream stream = item.getInputStream(); if (item.isFormField()) { String value = Streams.asString(stream); valueMap.put(name, value); } else { io = stream; } } } catch (FileUploadException e) { throw new IOException(e); } suuid = valueMap.get("s_uuid"); subDTO = service.getSubmissionLookupDTO(req, suuid); List<ItemSubmissionLookupDTO> result = new ArrayList<ItemSubmissionLookupDTO>(); TransformationEngine transformationEngine = service.getPhase1TransformationEngine(); if (transformationEngine != null) { MultipleSubmissionLookupDataLoader dataLoader = (MultipleSubmissionLookupDataLoader) transformationEngine .getDataLoader(); String tempDir = (ConfigurationManager.getProperty("upload.temp.dir") != null) ? ConfigurationManager.getProperty("upload.temp.dir") : System.getProperty("java.io.tmpdir"); File uploadDir = new File(tempDir); if (!uploadDir.exists()) { if (!uploadDir.mkdir()) { uploadDir = null; } } File file = File.createTempFile("submissionlookup-loader", ".temp", uploadDir); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); Utils.bufferedCopy(io, out); dataLoader.setFile(file.getAbsolutePath(), valueMap.get("provider_loader")); try { SubmissionLookupOutputGenerator outputGenerator = (SubmissionLookupOutputGenerator) transformationEngine .getOutputGenerator(); outputGenerator.setDtoList(new ArrayList<ItemSubmissionLookupDTO>()); log.debug("BTE transformation is about to start!"); transformationEngine.transform(new TransformationSpec()); log.debug("BTE transformation finished!"); result = outputGenerator.getDtoList(); } catch (BadTransformationSpec e1) { log.error(e1.getMessage(), e1); } catch (MalformedSourceException e1) { log.error(e1.getMessage(), e1); } finally { file.delete(); } } subDTO.setItems(result); service.storeDTOs(req, suuid, subDTO); List<Map<String, Object>> dto = getLightResultList(result); if (valueMap.containsKey("skip_loader")) { if (valueMap.get("skip_loader").equals("true")) { Map<String, Object> skip = new HashMap<String, Object>(); skip.put("skip", Boolean.TRUE); skip.put("uuid", valueMap.containsKey("s_uuid") ? suuid : -1); skip.put("collectionid", valueMap.containsKey("select-collection-file") ? valueMap.get("select-collection-file") : -1); dto.add(skip); } } JsonElement tree = json.toJsonTree(dto); JsonObject jo = new JsonObject(); jo.add("result", tree); resp.setContentType("text/plain"); // if you works in localhost mode and use IE10 to debug the feature uncomment the follow line // resp.setHeader("Access-Control-Allow-Origin","*"); resp.getWriter().write(jo.toString()); } }
From source file:org.eclipse.che.api.factory.FactoryService.java
/** * Save factory to storage and return stored data. Field 'factoryUrl' should contains factory url information. * Fields with images should be named 'image'. Acceptable image size 100x100 pixels. * If vcs is not set in factory URL it will be set with "git" value. * * @param formData/*from w ww. jav a 2s.c o m*/ * - http request form data * @param uriInfo * - url context * @return - stored data * @throws org.eclipse.che.api.core.ApiException * - {@link org.eclipse.che.api.core.ConflictException} when factory url json is not found * - {@link org.eclipse.che.api.core.ConflictException} when vcs is unsupported * - {@link org.eclipse.che.api.core.ConflictException} when image content can't be read * - {@link org.eclipse.che.api.core.ConflictException} when image media type is unsupported * - {@link org.eclipse.che.api.core.ConflictException} when image height or length isn't equal to 100 pixels * - {@link org.eclipse.che.api.core.ConflictException} when if image is too big * - {@link org.eclipse.che.api.core.ServerException} when internal server error occurs */ @ApiOperation(value = "Create a Factory and return data", notes = "Save factory to storage and return stored data. Field 'factoryUrl' should contains factory url information.", response = Factory.class, position = 1) @ApiResponses(value = { @ApiResponse(code = 200, message = "OK"), @ApiResponse(code = 409, message = "Conflict error. Some parameter is missing"), @ApiResponse(code = 500, message = "Unable to identify user from context") }) @RolesAllowed("user") @POST @Consumes({ MediaType.MULTIPART_FORM_DATA }) @Produces({ MediaType.APPLICATION_JSON }) public Factory saveFactory(Iterator<FileItem> formData, @Context UriInfo uriInfo) throws ApiException { try { EnvironmentContext context = EnvironmentContext.getCurrent(); if (context.getUser() == null || context.getUser().getName() == null || context.getUser().getId() == null) { throw new ServerException("Unable to identify user from context"); } Set<FactoryImage> images = new HashSet<>(); Factory factory = null; while (formData.hasNext()) { FileItem item = formData.next(); String fieldName = item.getFieldName(); if (fieldName.equals("factoryUrl")) { try { factory = factoryBuilder.buildEncoded(item.getInputStream()); } catch (JsonSyntaxException e) { throw new ConflictException("You have provided an invalid JSON. For more information, " + "please visit http://docs.codenvy.com/user/creating-factories/factory-parameter-reference/"); } } else if (fieldName.equals("image")) { try (InputStream inputStream = item.getInputStream()) { FactoryImage factoryImage = FactoryImage.createImage(inputStream, item.getContentType(), NameGenerator.generate(null, 16)); if (factoryImage.hasContent()) { images.add(factoryImage); } } } } if (factory == null) { LOG.warn("No factory URL information found in 'factoryUrl' section of multipart form-data."); throw new ConflictException( "No factory URL information found in 'factoryUrl' section of multipart/form-data."); } processDefaults(factory); createValidator.validateOnCreate(factory); String factoryId = factoryStore.saveFactory(factory, images); factory = factoryStore.getFactory(factoryId); factory = factory.withLinks(linksHelper.createLinks(factory, images, uriInfo)); LOG.info( "EVENT#factory-created# WS#{}# USER#{}# PROJECT#{}# TYPE#{}# REPO-URL#{}# FACTORY-URL#{}# AFFILIATE-ID#{}# ORG-ID#{}#", "", context.getUser().getName(), "", nullToEmpty(factory.getProject() != null ? factory.getProject().getType() : null), factory.getSource().getProject().getLocation(), linksHelper.getLinkByRelation(factory.getLinks(), "create-project").iterator().next().getHref(), "", nullToEmpty(factory.getCreator().getAccountId())); return factory; } catch (IOException e) { LOG.error(e.getLocalizedMessage(), e); throw new ServerException(e.getLocalizedMessage(), e); } }
From source file:org.eclipse.che.api.factory.server.FactoryService.java
@POST @Consumes(MULTIPART_FORM_DATA)//ww w . j a v a 2 s . c om @Produces(APPLICATION_JSON) @ApiOperation(value = "Create a new factory based on configuration and factory images", notes = "The field 'factory' is required") @ApiResponses({ @ApiResponse(code = 200, message = "Factory successfully created"), @ApiResponse(code = 400, message = "Missed required parameters, parameters are not valid"), @ApiResponse(code = 403, message = "The user does not have rights to create factory"), @ApiResponse(code = 409, message = "When factory with given name and creator already exists"), @ApiResponse(code = 500, message = "Internal server error occurred") }) public FactoryDto saveFactory(Iterator<FileItem> formData) throws ForbiddenException, ConflictException, BadRequestException, ServerException { try { final Set<FactoryImage> images = new HashSet<>(); FactoryDto factory = null; while (formData.hasNext()) { final FileItem item = formData.next(); switch (item.getFieldName()) { case ("factory"): { try (InputStream factoryData = item.getInputStream()) { factory = factoryBuilder.build(factoryData); } catch (JsonSyntaxException ex) { throw new BadRequestException("Invalid JSON value of the field 'factory' provided"); } break; } case ("image"): { try (InputStream imageData = item.getInputStream()) { final FactoryImage image = createImage(imageData, item.getContentType(), NameGenerator.generate(null, 16)); if (image.hasContent()) { images.add(image); } } break; } default: //DO NOTHING } } requiredNotNull(factory, "factory configuration"); processDefaults(factory); AddExecAgentInEnvironmentUtil.addExecAgent(factory.getWorkspace()); createValidator.validateOnCreate(factory); return injectLinks(asDto(factoryManager.saveFactory(factory, images)), images); } catch (IOException ioEx) { throw new ServerException(ioEx.getLocalizedMessage(), ioEx); } }
From source file:org.eclipse.che.api.project.server.impl.FileItemUtils.java
static FileItemParsed parseFile(Iterator<FileItem> iterator) throws ServerException { List<FileItem> fileItems = new LinkedList<>(); iterator.forEachRemaining(fileItems::add); List<FileItem> fileContents = fileItems.stream().filter(it -> !it.isFormField()) .collect(Collectors.toList()); if (fileContents.size() > 1) { throw new ServerException("Expected no more than one file to upload"); }/*from w w w . ja v a 2s . c om*/ if (fileContents.size() < 1) { throw new ServerException("Can't find file for upload"); } FileItem content = fileContents.iterator().next(); InputStream inputStream; try { inputStream = content.getInputStream(); } catch (IOException e) { throw new ServerException(e); } Optional<String> name = fileItems.stream().filter(FileItem::isFormField) .filter(it -> "name".equals(it.getFieldName())).map(FileItem::getString).map(String::trim) .filter(Objects::nonNull).filter(it -> !it.isEmpty()).findAny(); Optional<Boolean> overwrite = fileItems.stream().filter(FileItem::isFormField) .filter(it -> "overwrite".equals(it.getFieldName())).map(FileItem::getString).map(String::trim) .map(Boolean::parseBoolean).findAny(); return new FileItemParsed() { @Override public String getName() { return name.orElse(content.getName()); } @Override public InputStream getContent() { return inputStream; } @Override public boolean getOverwrite() { return overwrite.orElse(false); } }; }
From source file:org.eclipse.che.api.project.server.impl.FileItemUtils.java
static FileItemParsed parseDir(Iterator<FileItem> iterator) throws ServerException { List<FileItem> fileItems = new LinkedList<>(); iterator.forEachRemaining(fileItems::add); List<FileItem> fileContents = fileItems.stream().filter(it -> !it.isFormField()) .collect(Collectors.toList()); if (fileContents.size() > 1) { throw new ServerException("Expected no more than one file to upload"); }/*from w w w . j a v a 2s . co m*/ if (fileContents.size() < 1) { throw new ServerException("Can't find file for upload"); } FileItem content = fileContents.iterator().next(); InputStream inputStream; try { inputStream = content.getInputStream(); } catch (IOException e) { throw new ServerException(e); } return new FileItemParsed() { @Override public String getName() { throw new UnsupportedOperationException("Not supported for directories"); } @Override public InputStream getContent() { return inputStream; } @Override public boolean getOverwrite() { throw new UnsupportedOperationException("Not supported for directories"); } }; }
From source file:org.eclipse.che.api.project.server.ProjectService.java
@POST @Path("/upload/zipproject/{path:.*}") @Consumes({ MediaType.MULTIPART_FORM_DATA }) @Produces(MediaType.APPLICATION_JSON)//from ww w. ja v a2 s . c o m @ApiOperation(value = "Upload zip project", notes = "Upload project from local zip", response = ProjectConfigDto.class) @ApiResponses({ @ApiResponse(code = 200, message = ""), @ApiResponse(code = 401, message = "User not authorized to call this operation"), @ApiResponse(code = 403, message = "Forbidden operation"), @ApiResponse(code = 409, message = "Resource already exists"), @ApiResponse(code = 500, message = "Unsupported source type") }) public List<SourceEstimation> uploadProjectFromZip( @ApiParam(value = "Path in the project", required = true) @PathParam("path") String path, @ApiParam(value = "Force rewrite existing project", allowableValues = "true,false") @QueryParam("force") boolean force, Iterator<FileItem> formData) throws ServerException, IOException, ConflictException, ForbiddenException, NotFoundException, BadRequestException { // Not all importers uses virtual file system API. In this case virtual file system API doesn't get events and isn't able to set final FolderEntry baseProjectFolder = (FolderEntry) getVirtualFile(path, force); int stripNumber = 0; String projectName = ""; String projectDescription = ""; FileItem contentItem = null; while (formData.hasNext()) { FileItem item = formData.next(); if (!item.isFormField()) { if (contentItem == null) { contentItem = item; } else { throw new ServerException("More then one upload file is found but only one is expected. "); } } else { switch (item.getFieldName()) { case ("name"): projectName = item.getString().trim(); break; case ("description"): projectDescription = item.getString().trim(); break; case ("skipFirstLevel"): stripNumber = Boolean.parseBoolean(item.getString().trim()) ? 1 : 0; break; } } } if (contentItem == null) { throw new ServerException("Cannot find zip file for upload."); } try (InputStream zip = contentItem.getInputStream()) { baseProjectFolder.getVirtualFile().unzip(zip, true, stripNumber); } return resolveSources(path); }
From source file:org.eclipse.che.api.project.server.ProjectService.java
private static Response uploadFile(VirtualFile parent, Iterator<FileItem> formData) throws ForbiddenException, ConflictException, ServerException { try {/*from w ww . ja va2 s .c om*/ FileItem contentItem = null; String name = null; boolean overwrite = false; while (formData.hasNext()) { FileItem item = formData.next(); if (!item.isFormField()) { if (contentItem == null) { contentItem = item; } else { throw new ServerException("More then one upload file is found but only one should be. "); } } else if ("name".equals(item.getFieldName())) { name = item.getString().trim(); } else if ("overwrite".equals(item.getFieldName())) { overwrite = Boolean.parseBoolean(item.getString().trim()); } } if (contentItem == null) { throw new ServerException("Cannot find file for upload. "); } if (name == null || name.isEmpty()) { name = contentItem.getName(); } try { try { parent.createFile(name, contentItem.getInputStream()); } catch (ConflictException e) { if (!overwrite) { throw new ConflictException("Unable upload file. Item with the same name exists. "); } parent.getChild(org.eclipse.che.api.vfs.Path.of(name)) .updateContent(contentItem.getInputStream(), null); } } catch (IOException ioe) { throw new ServerException(ioe.getMessage(), ioe); } return Response.ok("", MediaType.TEXT_HTML).build(); } catch (ForbiddenException | ConflictException | ServerException e) { HtmlErrorFormatter.sendErrorAsHTML(e); // never thrown throw e; } }
From source file:org.eclipse.che.api.project.server.ProjectService.java
private static Response uploadZip(VirtualFile parent, Iterator<FileItem> formData) throws ForbiddenException, ConflictException, ServerException { try {//from www. j av a 2s. c o m FileItem contentItem = null; boolean overwrite = false; boolean skipFirstLevel = false; while (formData.hasNext()) { FileItem item = formData.next(); if (!item.isFormField()) { if (contentItem == null) { contentItem = item; } else { throw new ServerException("More then one upload file is found but only one should be. "); } } else if ("overwrite".equals(item.getFieldName())) { overwrite = Boolean.parseBoolean(item.getString().trim()); } else if ("skipFirstLevel".equals(item.getFieldName())) { skipFirstLevel = Boolean.parseBoolean(item.getString().trim()); } } if (contentItem == null) { throw new ServerException("Cannot find file for upload. "); } try { importZip(parent, contentItem.getInputStream(), overwrite, skipFirstLevel); } catch (IOException ioe) { throw new ServerException(ioe.getMessage(), ioe); } return Response.ok("", MediaType.TEXT_HTML).build(); } catch (ForbiddenException | ConflictException | ServerException e) { HtmlErrorFormatter.sendErrorAsHTML(e); // never thrown throw e; } }
From source file:org.eclipse.che.api.vfs.server.VirtualFileSystemImpl.java
public static Response uploadFile(VirtualFile parent, Iterator<FileItem> formData) throws ForbiddenException, ConflictException, ServerException { try {// ww w . ja v a2s. co m FileItem contentItem = null; String mediaType = null; String name = null; boolean overwrite = false; while (formData.hasNext()) { FileItem item = formData.next(); if (!item.isFormField()) { if (contentItem == null) { contentItem = item; } else { throw new ServerException("More then one upload file is found but only one should be. "); } } else if ("mimeType".equals(item.getFieldName())) { mediaType = item.getString().trim(); } else if ("name".equals(item.getFieldName())) { name = item.getString().trim(); } else if ("overwrite".equals(item.getFieldName())) { overwrite = Boolean.parseBoolean(item.getString().trim()); } } if (contentItem == null) { throw new ServerException("Cannot find file for upload. "); } if (name == null || name.isEmpty()) { name = contentItem.getName(); } if (mediaType == null || mediaType.isEmpty()) { mediaType = contentItem.getContentType(); } if (mediaType != null) { final MediaType mediaTypeType = MediaType.valueOf(mediaType); mediaType = mediaTypeType.getType() + '/' + mediaTypeType.getSubtype(); } try { try { parent.createFile(name, mediaType, contentItem.getInputStream()); } catch (ConflictException e) { if (!overwrite) { throw new ConflictException("Unable upload file. Item with the same name exists. "); } parent.getChild(name).updateContent(mediaType, contentItem.getInputStream(), null); } } catch (IOException ioe) { throw new ServerException(ioe.getMessage(), ioe); } return Response.ok("", MediaType.TEXT_HTML).build(); } catch (ForbiddenException | ConflictException | ServerException e) { HtmlErrorFormatter.sendErrorAsHTML(e); // never thrown throw e; } }