Example usage for org.springframework.web.multipart MultipartHttpServletRequest getFileNames

List of usage examples for org.springframework.web.multipart MultipartHttpServletRequest getFileNames

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartHttpServletRequest getFileNames.

Prototype

Iterator<String> getFileNames();

Source Link

Document

Return an java.util.Iterator of String objects containing the parameter names of the multipart files contained in this request.

Usage

From source file:org.gallery.web.controller.ImageController.java

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody Map upload(MultipartHttpServletRequest request, HttpServletResponse response)
        throws IOException {
    log.info("UploadPost called...");
    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf;/*w w  w .ja v a 2 s . c  o m*/
    List<ImageVO> list = new LinkedList<>();

    while (itr.hasNext()) {
        mpf = request.getFile(itr.next());
        String originalFilename = mpf.getOriginalFilename();
        if (originalFilename == null || StringUtils.isEmpty(originalFilename)) {
            originalFilename = UUID.randomUUID().toString() + ".jpg";
        }
        log.info("Uploading {}", originalFilename);

        String newFilenameBase = "-" + UUID.randomUUID().toString();
        String storageDirectory = fileUploadDirectory;
        String contentType = mpf.getContentType();
        if (contentType == null || StringUtils.isEmpty(contentType)) {
            contentType = "image/jpeg";
        }
        String newFilename = newFilenameBase;
        InputStream in = null;
        try {
            // Save Images
            // mpf.transferTo(newFile);
            in = new ByteArrayInputStream(mpf.getBytes());
            BufferedImage originalImage = ImageIO.read(in);

            // Save Original Image
            String filenameExtension = originalFilename.substring(originalFilename.lastIndexOf(".") + 1,
                    originalFilename.length());
            ImageIO.write(originalImage, filenameExtension,
                    new File(storageDirectory + File.separatorChar + originalFilename));

            // Small Thumbnails
            BufferedImage thumbnail_small = Scalr.resize(originalImage, ThumbnailSize.SMALL_SIZE.getSize());
            compressImg(thumbnail_small,
                    new File(storageDirectory + File.separatorChar + ThumbnailSize.SMALL_SIZE.getId()
                            + newFilenameBase + "." + ThumbnailSize.SMALL_SIZE.getFormatName()),
                    ThumbnailSize.SMALL_SIZE.getCompressionQuality());

            // Medium Thumbnail
            BufferedImage thumbnail_medium = Scalr.resize(originalImage, ThumbnailSize.MEDIUM_SIZE.getSize());
            compressImg(thumbnail_medium,
                    new File(storageDirectory + File.separatorChar + ThumbnailSize.MEDIUM_SIZE.getId()
                            + newFilenameBase + "." + ThumbnailSize.MEDIUM_SIZE.getFormatName()),
                    ThumbnailSize.MEDIUM_SIZE.getCompressionQuality());

            // Big Thumbnails
            BufferedImage thumbnail_big = Scalr.resize(originalImage, ThumbnailSize.BIG_SIZE.getSize());
            compressImg(thumbnail_big,
                    new File(storageDirectory + File.separatorChar + ThumbnailSize.BIG_SIZE.getId()
                            + newFilenameBase + "." + ThumbnailSize.BIG_SIZE.getFormatName()),
                    ThumbnailSize.BIG_SIZE.getCompressionQuality());

            log.info("EmotionParser...");
            // ImageEntity entity =
            // EmotionParser.parse(ImageIO.read(newFile));
            ImageEntity entity = new ImageEntity();
            entity.setName(originalFilename);
            entity.setNewFilename(newFilename);
            entity.setContentType(contentType);
            entity.setSize(mpf.getSize());
            imageDao.save(entity);

            ImageVO imageVO = new ImageVO(entity);
            imageVO.setId(entity.getId());
            imageVO.setUrl("/picture/" + entity.getId());
            imageVO.setThumbnailUrl("/thumbnail/" + entity.getId());
            imageVO.setDeleteUrl("/delete/" + entity.getId());
            imageVO.setEmotionUrl("/emotion/" + entity.getId());
            imageVO.setDeleteType("DELETE");

            list.add(imageVO);
        } catch (IOException e) {
            log.error("Could not upload file " + originalFilename, e);
        } finally {
            in.close();
        }
    }
    Map<String, Object> files = new HashMap<>();
    files.put("files", list);
    return files;
}

From source file:gr.abiss.calipso.tiers.controller.AbstractModelWithAttachmentsController.java

@ApiOperation(value = "Add a file uploads to property")
@RequestMapping(value = "{subjectId}/uploads/{propertyName}", method = { RequestMethod.POST,
        RequestMethod.PUT }, consumes = {})
public @ResponseBody BinaryFile addUploadsToProperty(@PathVariable ID subjectId,
        @PathVariable String propertyName, MultipartHttpServletRequest request, HttpServletResponse response) {
    LOGGER.info("uploadPost called");

    Configuration config = ConfigurationFactory.getConfiguration();
    String fileUploadDirectory = config.getString(ConfigurationFactory.FILES_DIR);
    String baseUrl = config.getString("calipso.baseurl");

    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf;//  w  w w  .j a  va 2  s  . c o m
    BinaryFile bf = new BinaryFile();
    try {
        if (itr.hasNext()) {

            mpf = request.getFile(itr.next());
            LOGGER.info("Uploading {}", mpf.getOriginalFilename());

            bf.setName(mpf.getOriginalFilename());
            bf.setFileNameExtention(
                    mpf.getOriginalFilename().substring(mpf.getOriginalFilename().lastIndexOf(".") + 1));

            bf.setContentType(mpf.getContentType());
            bf.setSize(mpf.getSize());

            // request targets specific path?
            StringBuffer uploadsPath = new StringBuffer('/')
                    .append(this.service.getDomainClass().getDeclaredField("PATH_FRAGMENT").get(String.class))
                    .append('/').append(subjectId).append("/uploads/").append(propertyName);
            bf.setParentPath(uploadsPath.toString());
            LOGGER.info("Saving image entity with path: " + bf.getParentPath());
            bf = binaryFileService.create(bf);

            LOGGER.info("file name: {}", bf.getNewFilename());
            bf = binaryFileService.findById(bf.getId());
            LOGGER.info("file name: {}", bf.getNewFilename());

            File storageDirectory = new File(fileUploadDirectory + bf.getParentPath());

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

            LOGGER.info("storageDirectory: {}", storageDirectory.getAbsolutePath());
            LOGGER.info("file name: {}", bf.getNewFilename());

            File newFile = new File(storageDirectory, bf.getNewFilename());
            newFile.createNewFile();
            LOGGER.info("newFile path: {}", newFile.getAbsolutePath());
            Files.copy(mpf.getInputStream(), newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);

            BufferedImage thumbnail = Scalr.resize(ImageIO.read(newFile), 290);
            File thumbnailFile = new File(storageDirectory, bf.getThumbnailFilename());
            ImageIO.write(thumbnail, "png", thumbnailFile);
            bf.setThumbnailSize(thumbnailFile.length());

            bf = binaryFileService.update(bf);

            // attach file
            // TODO: add/update to collection
            Field fileField = GenericSpecifications.getField(this.service.getDomainClass(), propertyName);
            Class clazz = fileField.getType();
            if (BinaryFile.class.isAssignableFrom(clazz)) {
                T target = this.service.findById(subjectId);
                BeanUtils.setProperty(target, propertyName, bf);
                this.service.update(target);
            }

            bf.setUrl(baseUrl + "/api/rest/" + bf.getParentPath() + "/files/" + bf.getId());
            bf.setThumbnailUrl(baseUrl + "/api/rest/" + bf.getParentPath() + "/thumbs/" + bf.getId());
            bf.setDeleteUrl(baseUrl + "/api/rest/" + bf.getParentPath() + "/" + bf.getId());
            bf.setDeleteType("DELETE");
            bf.addInitialPreview("<img src=\"" + bf.getThumbnailUrl() + "\" class=\"file-preview-image\" />");

        }

    } catch (Exception e) {
        LOGGER.error("Could not upload file(s) ", e);
    }

    return bf;
}

From source file:com.qcadoo.mes.basic.controllers.WorkstationMultiUploadController.java

@ResponseBody
@RequestMapping(value = "/multiUploadFiles", method = RequestMethod.POST)
public void upload(MultipartHttpServletRequest request, HttpServletResponse response) {
    Long workstationId = Long.parseLong(request.getParameter("techId"));
    Entity workstation = dataDefinitionService
            .get(BasicConstants.PLUGIN_IDENTIFIER, BasicConstants.MODEL_WORKSTATION).get(workstationId);
    DataDefinition attachmentDD = dataDefinitionService.get(BasicConstants.PLUGIN_IDENTIFIER,
            BasicConstants.MODEL_WORKSTATION_ATTACHMENT);

    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf = null;// ww w  .  jav  a 2s  .  c om

    while (itr.hasNext()) {

        mpf = request.getFile(itr.next());

        String path = "";
        try {
            path = fileService.upload(mpf);
        } catch (IOException e) {
            logger.error("Unable to upload attachment.", e);
        }
        if (exts.contains(Files.getFileExtension(path).toUpperCase())) {
            Entity atchment = attachmentDD.create();
            atchment.setField(WorkstationAttachmentFields.ATTACHMENT, path);
            atchment.setField(WorkstationAttachmentFields.NAME, mpf.getOriginalFilename());
            atchment.setField(WorkstationAttachmentFields.WORKSTATION, workstation);
            atchment.setField(WorkstationAttachmentFields.EXT, Files.getFileExtension(path));
            BigDecimal fileSize = new BigDecimal(mpf.getSize(), numberService.getMathContext());
            BigDecimal divider = new BigDecimal(1024, numberService.getMathContext());
            BigDecimal size = fileSize.divide(divider, L_SCALE, BigDecimal.ROUND_HALF_UP);
            atchment.setField(WorkstationAttachmentFields.SIZE, size);
            attachmentDD.save(atchment);
        }
    }
}

From source file:com.qcadoo.mes.basic.controllers.SubassemblyMultiUploadController.java

@ResponseBody
@RequestMapping(value = "/multiUploadFilesForSubassembly", method = RequestMethod.POST)
public void upload(MultipartHttpServletRequest request, HttpServletResponse response) {
    Long subassemblyId = Long.parseLong(request.getParameter("techId"));
    Entity subassembly = dataDefinitionService
            .get(BasicConstants.PLUGIN_IDENTIFIER, BasicConstants.MODEL_SUBASSEMBLY).get(subassemblyId);
    DataDefinition attachmentDD = dataDefinitionService.get(BasicConstants.PLUGIN_IDENTIFIER,
            BasicConstants.MODEL_SUBASSEMBLY_ATTACHMENT);

    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf = null;/* w  w w .j  a  va2  s . c  om*/

    while (itr.hasNext()) {

        mpf = request.getFile(itr.next());

        String path = "";
        try {
            path = fileService.upload(mpf);
        } catch (IOException e) {
            logger.error("Unable to upload attachment.", e);
        }
        if (exts.contains(Files.getFileExtension(path).toUpperCase())) {
            Entity atchment = attachmentDD.create();
            atchment.setField(SubassemblyAttachmentFields.ATTACHMENT, path);
            atchment.setField(SubassemblyAttachmentFields.NAME, mpf.getOriginalFilename());
            atchment.setField(SubassemblyAttachmentFields.SUBASSEMBLY, subassembly);
            atchment.setField(SubassemblyAttachmentFields.EXT, Files.getFileExtension(path));
            BigDecimal fileSize = new BigDecimal(mpf.getSize(), numberService.getMathContext());
            BigDecimal divider = new BigDecimal(1024, numberService.getMathContext());
            BigDecimal size = fileSize.divide(divider, L_SCALE, BigDecimal.ROUND_HALF_UP);
            atchment.setField(SubassemblyAttachmentFields.SIZE, size);
            attachmentDD.save(atchment);
        }
    }
}

From source file:com.hp.avmon.agentless.service.AgentlessService.java

public String importAgentlessFile(HttpServletRequest request) throws IOException {

    String result = StringUtil.EMPTY;
    HashMap<String, ArrayList<Map<String, String>>> resultMap = new HashMap<String, ArrayList<Map<String, String>>>();
    ArrayList<Map<String, String>> files = new ArrayList<Map<String, String>>();
    Map<String, HashMap<String, List<String>>> map = new HashMap<String, HashMap<String, List<String>>>();

    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    //?//from  w  w w.ja v  a2 s  .  com
    String templatePath = Config.getInstance().getAgentlessfilesUploadPath();
    File dirPath = new File(templatePath);
    if (!dirPath.exists()) {
        dirPath.mkdirs();
    }
    Map<String, String> fileMap;
    try {
        for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
            String fileName = (String) it.next();
            CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile(fileName);
            if (file != null && file.getSize() != 0) {
                String sep = System.getProperty("file.separator");
                String importFilePath = dirPath + sep + file.getOriginalFilename();
                File uploadedFile = new File(importFilePath);
                FileCopyUtils.copy(file.getBytes(), uploadedFile);
                //??
                String importStatus = importRmpInstance(importFilePath);
                //boolean importStatus = false;
                String name = file.getOriginalFilename();
                fileMap = new HashMap<String, String>();

                if (importStatus.indexOf("success") > -1) {
                    fileMap.put("status", "success");
                    String[] s = importStatus.split(":");
                    fileMap.put("msg", "?" + s[1] + "" + s[2]);
                } else {
                    fileMap.put("status", "failed");
                    fileMap.put("msg", importStatus);
                }
                fileMap.put("url", "");
                fileMap.put("thumbnailUrl", "");
                fileMap.put("name", name);
                fileMap.put("type", "image/jpeg");
                fileMap.put("size", file.getSize() + "");
                fileMap.put("deleteUrl", "");
                fileMap.put("deleteType", "DELETE");
                files.add(fileMap);
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
        logger.error(e);
    }
    resultMap.put("files", files);
    result = JackJson.fromObjectToJson(resultMap);
    logger.debug(result);
    return result;
}

From source file:com.qcadoo.mes.technologies.controller.TechnologyMultiUploadController.java

@ResponseBody
@RequestMapping(value = "/multiUploadFiles", method = RequestMethod.POST)
public void upload(MultipartHttpServletRequest request, HttpServletResponse response) {
    Long technologyId = Long.parseLong(request.getParameter("techId"));
    Entity technology = dataDefinitionService
            .get(TechnologiesConstants.PLUGIN_IDENTIFIER, TechnologiesConstants.MODEL_TECHNOLOGY)
            .get(technologyId);//from  w  w  w .ja  v  a2s.  c o m
    DataDefinition attachmentDD = dataDefinitionService.get(TechnologiesConstants.PLUGIN_IDENTIFIER,
            TechnologiesConstants.MODEL_TECHNOLOGY_ATTACHMENT);

    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf = null;

    while (itr.hasNext()) {

        mpf = request.getFile(itr.next());

        String path = "";
        try {
            path = fileService.upload(mpf);
        } catch (IOException e) {
            logger.error("Unable to upload attachment.", e);
        }
        if (exts.contains(Files.getFileExtension(path).toUpperCase())) {
            Entity atchment = attachmentDD.create();
            atchment.setField(TechnologyAttachmentFields.ATTACHMENT, path);
            atchment.setField(TechnologyAttachmentFields.NAME, mpf.getOriginalFilename());
            atchment.setField(TechnologyAttachmentFields.TECHNOLOGY, technology);
            atchment.setField(TechnologyAttachmentFields.EXT, Files.getFileExtension(path));
            BigDecimal fileSize = new BigDecimal(mpf.getSize(), numberService.getMathContext());
            BigDecimal divider = new BigDecimal(1024, numberService.getMathContext());
            BigDecimal size = fileSize.divide(divider, L_SCALE, BigDecimal.ROUND_HALF_UP);
            atchment.setField(TechnologyAttachmentFields.SIZE, size);
            attachmentDD.save(atchment);
        }
    }
}

From source file:com.jaspersoft.jasperserver.rest.utils.Utils.java

/**
 * Extract the attachments from the request and put the in the list of
 * input attachments of the service.//from   www .jav  a2s  . co  m
 *
 * The method returns the currenst HttpServletRequest if the message is not
 * multipart, otherwise it returns a MultipartHttpServletRequest
 *
 *
 * @param service
 * @param hRequest
 */
public HttpServletRequest extractAttachments(LegacyRunReportService service, HttpServletRequest hRequest) {
    //Check whether we're dealing with a multipart request
    MultipartResolver resolver = new CommonsMultipartResolver();

    // handles the PUT multipart requests
    if (isMultipartContent(hRequest) && hRequest.getContentLength() != -1) {
        MultipartHttpServletRequest mreq = resolver.resolveMultipart(hRequest);
        if (mreq != null && mreq.getFileMap().size() != 0) {
            Iterator iterator = mreq.getFileNames();
            String fieldName = null;
            while (iterator.hasNext()) {
                fieldName = (String) iterator.next();
                MultipartFile file = mreq.getFile(fieldName);
                if (file != null) {
                    DataSource ds = new MultipartFileDataSource(file);
                    service.getInputAttachments().put(fieldName, ds);
                }
            }
            if (log.isDebugEnabled()) {
                log.debug(service.getInputAttachments().size() + " attachments were extracted from the PUT");
            }
            return mreq;
        }
        // handles the POST multipart requests
        else {
            if (hRequest instanceof DefaultMultipartHttpServletRequest) {
                DefaultMultipartHttpServletRequest dmServletRequest = (DefaultMultipartHttpServletRequest) hRequest;

                Iterator iterator = ((DefaultMultipartHttpServletRequest) hRequest).getFileNames();
                String fieldName = null;
                while (iterator.hasNext()) {
                    fieldName = (String) iterator.next();
                    MultipartFile file = dmServletRequest.getFile(fieldName);
                    if (file != null) {
                        DataSource ds = new MultipartFileDataSource(file);
                        service.getInputAttachments().put(fieldName, ds);
                    }
                }
            }
        }
    }
    if (log.isDebugEnabled()) {
        log.debug(service.getInputAttachments().size() + " attachments were extracted from the POST");
    }
    return hRequest;

}

From source file:com.qcadoo.mes.cmmsMachineParts.controller.PlannedEventMultiUploadController.java

@ResponseBody
@RequestMapping(value = "/multiUploadFilesForPlannedEvent", method = RequestMethod.POST)
public void upload(MultipartHttpServletRequest request, HttpServletResponse response) {
    Long eventId = Long.parseLong(request.getParameter("eventId"));
    Entity event = dataDefinitionService
            .get(CmmsMachinePartsConstants.PLUGIN_IDENTIFIER, CmmsMachinePartsConstants.MODEL_PLANNED_EVENT)
            .get(eventId);//from ww w .  j  av  a2  s  . c  om
    DataDefinition attachmentDD = dataDefinitionService.get(CmmsMachinePartsConstants.PLUGIN_IDENTIFIER,
            CmmsMachinePartsConstants.MODEL_PLANNED_EVENT_ATTACHMENT);

    Iterator<String> itr = request.getFileNames();
    MultipartFile mpf = null;

    while (itr.hasNext()) {

        mpf = request.getFile(itr.next());

        String path = "";
        try {
            path = fileService.upload(mpf);
        } catch (IOException e) {
            logger.error("Unable to upload attachment.", e);
        }
        if (exts.contains(Files.getFileExtension(path).toUpperCase())) {
            Entity atchment = attachmentDD.create();
            atchment.setField(PlannedEventAttachmentFields.ATTACHMENT, path);
            atchment.setField(PlannedEventAttachmentFields.NAME, mpf.getOriginalFilename());
            atchment.setField(PlannedEventAttachmentFields.PLANNED_EVENT, event);
            atchment.setField(PlannedEventAttachmentFields.EXT, Files.getFileExtension(path));
            BigDecimal fileSize = new BigDecimal(mpf.getSize(), numberService.getMathContext());
            BigDecimal divider = new BigDecimal(1024, numberService.getMathContext());
            BigDecimal size = fileSize.divide(divider, L_SCALE, BigDecimal.ROUND_HALF_UP);
            atchment.setField(PlannedEventAttachmentFields.SIZE, size);
            atchment = attachmentDD.save(atchment);
            atchment.isValid();
        }
    }
}

From source file:fr.mby.opa.pics.web.controller.UploadPicturesController.java

/***************************************************
 * URL: /upload/jqueryUpload upload(): receives files
 * //from   w  w w.j a  v  a 2 s .com
 * @param request
 *            : MultipartHttpServletRequest auto passed
 * @param response
 *            : HttpServletResponse auto passed
 * @return LinkedList<FileMeta> as json format
 ****************************************************/
@ResponseBody
@RequestMapping(value = "/jqueryUpload", method = RequestMethod.POST)
public FileMetaList jqueryUpload(@RequestParam final Long albumId, final MultipartHttpServletRequest request,
        final HttpServletResponse response) throws Exception {
    Assert.notNull(albumId, "No Album Id supplied !");

    final FileMetaList files = new FileMetaList();

    // 1. build an iterator
    final Iterator<String> itr = request.getFileNames();

    // 2. get each file
    while (itr.hasNext()) {

        // 2.1 get next MultipartFile
        final MultipartFile mpf = request.getFile(itr.next());

        // Here the file is uploaded

        final String originalFilename = mpf.getOriginalFilename();
        final String contentType = mpf.getContentType();

        final Matcher zipMatcher = UploadPicturesController.ZIP_CONTENT_TYPE_PATTERN.matcher(contentType);
        if (zipMatcher.find()) {

            // 2.3 create new fileMeta
            final FileMeta zipMeta = new FileMeta();
            zipMeta.setFileName(originalFilename);
            zipMeta.setFileSize(mpf.getSize() / 1024 + " Kb");
            zipMeta.setFileType(mpf.getContentType());

            final List<Path> picturesPaths = this.processArchive(mpf);

            final Collection<Future<Void>> futures = new ArrayList<>(picturesPaths.size());
            final ExecutorService executorService = Executors
                    .newFixedThreadPool(Runtime.getRuntime().availableProcessors());

            for (final Path picturePath : picturesPaths) {
                final Future<Void> future = executorService.submit(new Callable<Void>() {

                    @Override
                    public Void call() throws Exception {
                        final String pictureFileName = picturePath.getName(picturePath.getNameCount() - 1)
                                .toString();
                        final byte[] pictureContents = Files.readAllBytes(picturePath);

                        final FileMeta pictureMeta = new FileMeta();
                        try {
                            final Picture picture = UploadPicturesController.this.createPicture(albumId,
                                    pictureFileName.toString(), pictureContents);
                            final Long imageId = picture.getImage().getId();
                            final Long thumbnailId = picture.getThumbnail().getId();

                            pictureMeta.setFileName(pictureFileName);
                            pictureMeta.setFileSize(pictureContents.length / 1024 + " Kb");
                            pictureMeta.setFileType(Files.probeContentType(picturePath));
                            pictureMeta.setUrl(
                                    response.encodeURL(ImageController.IMAGE_CONTROLLER_PATH + "/" + imageId));
                            pictureMeta.setThumbnailUrl(response
                                    .encodeURL(ImageController.IMAGE_CONTROLLER_PATH + "/" + thumbnailId));
                        } catch (final PictureAlreadyExistsException e) {
                            // Picture already exists !
                            pictureMeta.setError(
                                    UploadPicturesController.PICTURE_ALREADY_EXISTS_MSG + e.getFilename());
                        } catch (final UnsupportedPictureTypeException e) {
                            // Picture already exists !
                            pictureMeta.setError(
                                    UploadPicturesController.UNSUPPORTED_PICTURE_TYPE_MSG + e.getFilename());
                        }

                        files.add(pictureMeta);

                        return null;
                    }
                });
                futures.add(future);
            }

            for (final Future<Void> future : futures) {
                future.get();
            }

            files.add(zipMeta);
        }

        final Matcher imgMatcher = UploadPicturesController.IMG_CONTENT_TYPE_PATTERN.matcher(contentType);
        if (imgMatcher.find()) {
            // 2.3 create new fileMeta
            final FileMeta fileMeta = new FileMeta();
            try {
                final byte[] fileContents = mpf.getBytes();
                final Picture picture = this.createPicture(albumId, originalFilename, fileContents);

                final Long imageId = picture.getImage().getId();
                final Long thumbnailId = picture.getThumbnail().getId();

                fileMeta.setFileName(originalFilename);
                fileMeta.setFileSize(mpf.getSize() / 1024 + " Kb");
                fileMeta.setFileType(mpf.getContentType());
                fileMeta.setBytes(fileContents);
                fileMeta.setUrl(response.encodeURL(ImageController.IMAGE_CONTROLLER_PATH + "/" + imageId));
                fileMeta.setThumbnailUrl(
                        response.encodeURL(ImageController.IMAGE_CONTROLLER_PATH + "/" + thumbnailId));

                // 2.4 add to files
                files.add(fileMeta);
            } catch (final PictureAlreadyExistsException e) {
                // Picture already exists !
                fileMeta.setError(UploadPicturesController.PICTURE_ALREADY_EXISTS_MSG);
            }
        }

    }

    // result will be like this
    // {files:[{"fileName":"app_engine-85x77.png","fileSize":"8 Kb","fileType":"image/png"},...]}
    return files;
}

From source file:cn.mk.ndms.modules.lease.web.controller.LeaseController.java

@RequestMapping(value = "upload", method = RequestMethod.POST)
@ResponseBody//from ww w.j a  v  a 2s  . co  m
public AjaxBean upload(HttpServletRequest request, HttpServletResponse response) throws IOException {
    try {
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                request.getSession().getServletContext());
        if (multipartResolver.isMultipart(request)) {
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            Iterator<String> iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                MultipartFile file = multiRequest.getFile((String) iter.next());
                if (file != null) {
                    String fileName = file.getOriginalFilename();
                    String path1 = Thread.currentThread().getContextClassLoader().getResource("").getPath()
                            + "file" + File.separator;
                    //  ???
                    String path2 = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + fileName;
                    String path = path1 + path2;
                    File localFile = new File(path);
                    file.transferTo(localFile);
                    Lease lease = leaseService.findOne(request.getParameter("id"));
                    lease.setFilePath(path2);
                    leaseService.update(lease);
                }
            }
        }
        return AjaxBean.getInstance("success");
    } catch (Exception ex) {
        return AjaxBean.getInstance("error", ex.getMessage());
    }
}