Example usage for org.springframework.web.multipart MultipartFile getInputStream

List of usage examples for org.springframework.web.multipart MultipartFile getInputStream

Introduction

In this page you can find the example usage for org.springframework.web.multipart MultipartFile getInputStream.

Prototype

@Override
InputStream getInputStream() throws IOException;

Source Link

Document

Return an InputStream to read the contents of the file from.

Usage

From source file:org.craftercms.profile.controllers.rest.ProfileController.java

@ResponseBody
@RequestMapping(value = URL_PROFILE_UPLOAD_ATTACHMENT, method = RequestMethod.POST)
@ApiOperation(value = "Upload a attachment to the current profile.", notes = "If the mime type of the attachment is not on the valid "
        + "list will fail")
@ApiImplicitParam(name = "attachment", required = true, dataType = "file", paramType = "file", value = "File to be uploaded")
public ProfileAttachment uploadProfileAttachment(
        @ApiParam("The profile's ID") @PathVariable(PATH_VAR_ID) String profileId,
        @RequestParam(name = PARAM_FILENAME, required = false) String filename, MultipartFile attachment)
        throws ProfileException {
    Profile profile = profileService.getProfile(profileId);
    if (profile != null) {
        String attachmentName = StringUtils.isNotBlank(filename) ? filename : attachment.getOriginalFilename();
        try {/* w ww .  java 2s  .com*/
            return profileService.addProfileAttachment(profile.getId().toString(), attachmentName,
                    attachment.getInputStream());
        } catch (IOException e) {
            throw new ProfileException("Unable to upload Attachment", e);
        }
    } else {
        throw new NoSuchProfileException.ById(profileId);
    }
}

From source file:org.craftercms.social.controllers.rest.v3.comments.ProfileHelperController.java

@RequestMapping(value = "/avatar/{profileId}", method = RequestMethod.POST)
@ResponseBody//from   ww w  . j av a 2  s .c o m
public Profile getProfileAvatar(MultipartHttpServletRequest request, HttpServletResponse response,
        @PathVariable("profileId") String profileId) throws IOException, ProfileException {
    final Profile profile = SocialSecurityUtils.getCurrentProfile();
    if (profile != null && !profile.getUsername().equalsIgnoreCase(SocialSecurityUtils.ANONYMOUS)) {
        final Iterator<String> files = request.getFileNames();
        String fileName = null;
        if (files.hasNext()) {
            fileName = files.next();
        }
        if (!StringUtils.isBlank(fileName)) {
            final MultipartFile avatar = request.getFile(fileName);
            profileService.addProfileAttachment(profile.getId().toString(),
                    AVATAR + "." + FilenameUtils.getExtension(avatar.getOriginalFilename()).toLowerCase(),
                    avatar.getInputStream());
        }
        return profile;
    } else {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        return null;
    }
}

From source file:org.craftercms.studio.controller.services.rest.AssetServiceController.java

/**
 * Add asset file to repository./* w ww . ja  va  2s .co m*/
 *
 * @param site          site identifier
 * @param parentId      parent identifier
 * @param fileName      asset file name
 * @param file          asset content file
 * @param mimeType      mime type
 * @param properties    additional properties
 * @return              item representing given asset in repository
 * @throws StudioException
 */
@ApiErrors(@ApiError(code = 400, reason = "Bad request"))
@ApiModel(type = Item.class)
@RequestMapping(value = "/create/{site}", params = { "parent_id", "file_name",
        "mime_type" }, method = RequestMethod.POST)
@ResponseBody
public Item create(@ApiParam(name = "site", required = true, value = "String") @PathVariable String site,

        @ApiParam(name = "parent_id", required = true, value = "String") @RequestParam(value = "parent_id") String parentId,

        @ApiParam(name = "file_name", required = true, value = "String") @RequestParam(value = "file_name") String fileName,

        @ApiParam(name = "file", required = true, value = "org.springframework.web.multipart.MultipartFile") @RequestParam(value = "file") MultipartFile file,

        @ApiParam(name = "mime_type", required = true, value = "String") @RequestParam(value = "mime_type") String mimeType,

        @ApiParam(name = "properties", required = false, value = "Map<String, String>") @RequestParam(value = "properties", required = false) Map<String, String> properties)

        throws StudioException {

    InputStream contentStream = null;
    try {
        contentStream = file.getInputStream();
    } catch (IOException e) {
        throw new StudioException(StudioException.ErrorCode.SYSTEM_ERROR, e);
    }
    Context context = RestControllerUtils.createMockContext();
    return assetService.create(context, site, parentId, fileName, contentStream, mimeType, properties);
}

From source file:org.craftercms.studio.controller.services.rest.AssetServiceController.java

/**
 * Update asset with given id and file.//from w w w.  j  a v a 2  s. co m
 *
 * @param site          site identifier
 * @param itemId        asset item id
 * @param file          asset content file
 * @param properties    additional properties
 * @return              item representing asset
 * @throws StudioException
 */
@ApiErrors(@ApiError(code = 400, reason = "Bad Request"))
@ApiModel(type = Item.class)
@RequestMapping(value = "/update/{site}", params = { "item_id" }, method = RequestMethod.POST)
@ResponseBody
public Item update(@ApiParam(name = "site", required = true, value = "String") @PathVariable String site,

        @ApiParam(name = "item_id", required = true, value = "String") @RequestParam(value = "item_id") String itemId,

        @ApiParam(name = "file", required = true, value = "org.springframework.web.multipart.MultipartFile") @RequestParam(value = "file") MultipartFile file,

        @ApiParam(name = "properties", required = false, value = "Map<String, String>") @RequestParam(value = "properties", required = false) Map<String, String> properties)
        throws StudioException {

    Context context = RestControllerUtils.createMockContext();
    ItemId id = new ItemId(itemId);
    InputStream content = null;
    try {
        content = file.getInputStream();
    } catch (IOException e) {
        throw new StudioException(StudioException.ErrorCode.SYSTEM_ERROR, e);
    }
    return assetService.update(context, site, id, content, properties);
}

From source file:org.craftercms.studio.controller.services.rest.DescriptorServiceController.java

/**
 * Create a new descriptor./*from w  ww  .  j ava2 s.  c o  m*/
 *
 * @param site          site identifier
 * @param contentTypeId content type identifier
 * @param parentId      parent identifier
 * @param fileName      file name
 * @param file          content stream
 * @param properties    additional properties
 * @return item
 * @throws StudioException
 */
@ApiResponses({ @ApiResponse(code = 200, message = "Success", response = Item.class),
        @ApiResponse(code = 400, message = "Bad Request") })
@RequestMapping(value = "/create/{site}", method = RequestMethod.POST, params = { "content_type_id",
        "parent_id", "file_name" })
@ResponseBody
public Item create(

        @ApiParam(name = "site", required = true, value = "String") @PathVariable final String site,

        @ApiParam(name = "content_type_id", required = true, value = "String") @RequestParam(value = "content_type_id", required = true) final String contentTypeId,

        @ApiParam(name = "parent_id", required = true, value = "String") @RequestParam(value = "parent_id", required = true) final String parentId,

        @ApiParam(name = "file_name", required = true, value = "String") @RequestParam(value = "file_name", required = true) final String fileName,

        @ApiParam(name = "file", required = true, value = "MultipartFile") @RequestParam(value = "file") final MultipartFile file,

        @ApiParam(name = "properties", required = false, value = "Map<String, String>") @RequestParam(value = "properties", required = false) final Map<String, String> properties)
        throws StudioException {
    Context context = RestControllerUtils.createMockContext();
    InputStream content = null;
    try {
        content = file.getInputStream();
    } catch (IOException e) {
        throw ErrorManager.createError(StudioServerErrorCode.FILE_UPLOAD_IO_ERROR);
    }
    Item item = descriptorService.create(context, site, contentTypeId, parentId, fileName, content, properties);
    return item;
}

From source file:org.craftercms.studio.controller.services.rest.DescriptorServiceController.java

/**
 * Update given descriptor./* ww w. ja  v  a2  s .c o  m*/
 *
 * @param site       site identifier
 * @param itemId     descriptor item identifier
 * @param file       content stream
 * @param properties additional properties
 * @return item
 * @throws StudioException
 */
@ApiResponses({ @ApiResponse(code = 200, message = "Success", response = Item.class),
        @ApiResponse(code = 400, message = "Bad request") })
@RequestMapping(value = "/update/{site}", method = RequestMethod.POST, params = "item_id")
@ResponseBody
public Item update(

        @ApiParam(name = "site", required = true, value = "String") @PathVariable final String site,

        @ApiParam(name = "item_id", required = true, value = "String") @RequestParam(value = "item_id", required = true) final String itemId,

        @ApiParam(name = "file", required = true, value = "MultipartFile") @RequestParam(value = "file", required = true) final MultipartFile file,

        @ApiParam(name = "properties", required = false, value = "Map<String, String>") @RequestParam(value = "properties", required = false) final Map<String, String> properties)
        throws StudioException {

    Context context = RestControllerUtils.createMockContext();
    ItemId descriptorItemId = new ItemId(itemId);
    InputStream contentStream = null;
    try {
        contentStream = file.getInputStream();
    } catch (IOException e) {
        throw ErrorManager.createError(StudioServerErrorCode.FILE_UPLOAD_IO_ERROR);
    }
    Item item = descriptorService.update(context, site, descriptorItemId, contentStream, properties);
    return item;
}

From source file:org.craftercms.studio.controller.services.rest.TemplateServiceController.java

/**
 * Create a new template.//  w ww.  j a v a  2  s  . c o  m
 *
 * @param site       site identifier
 * @param parentId   parent identifier
 * @param fileName   file name
 * @param file       template file
 * @param properties template properties
 * @return template descriptor item
 * @throws StudioException
 */
@ApiOperation(value = "Create new template", notes = "Adds new template file to repository", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiResponses({ @ApiResponse(code = 200, message = "Success", response = Item.class),
        @ApiResponse(code = 400, message = "Bad request") })
@RequestMapping(value = "/create/{site}", method = RequestMethod.POST, params = { "parent_id", "file_name" })
@ResponseBody
public Item create(

        @ApiParam(name = "site", required = true, value = "String") @PathVariable final String site,

        @ApiParam(name = "parent_id", required = true, value = "String") @RequestParam(value = "parent_id", required = true) final String parentId,

        @ApiParam(name = "file_name", required = true, value = "String") @RequestParam(value = "file_name", required = true) final String fileName,

        @ApiParam(name = "file", required = true, value = "String") @RequestParam(value = "file", required = true) final MultipartFile file,

        @ApiParam(name = "properties", required = false, value = "Map<String, String") @RequestParam(value = "properties", required = false) final Map<String, String> properties)
        throws StudioException {

    Context context = RestControllerUtils.createMockContext();
    InputStream content = null;
    try {
        content = file.getInputStream();
    } catch (IOException e) {
        throw ErrorManager.createError(StudioServerErrorCode.FILE_UPLOAD_IO_ERROR);
    }
    Item item = templateService.create(context, site, parentId, fileName, content, properties);
    return item;
}

From source file:org.craftercms.studio.controller.services.rest.TemplateServiceController.java

/**
 * Update template.//from w w w.  j a  v  a 2s .c om
 *
 * @param site       site identifier
 * @param itemId     template identifier
 * @param file       template file
 * @param properties template properties
 * @return template descriptor
 * @throws StudioException
 */
@ApiResponses({ @ApiResponse(code = 200, message = "Success", response = Item.class),
        @ApiResponse(code = 400, message = "Bad request") })
@RequestMapping(value = "/update/{site}", method = RequestMethod.POST, params = { "item_id" })
@ResponseBody
public Item update(

        @ApiParam(name = "site", required = true, value = "String") @PathVariable final String site,

        @ApiParam(name = "item_id", required = true, value = "String") @RequestParam(value = "item_id", required = true) final String itemId,

        @ApiParam(name = "file", required = true, value = "MultipartFile") @RequestParam(value = "file", required = true) final MultipartFile file,

        @ApiParam(name = "properties", required = false, value = "Map<String, String") @RequestParam(value = "properties", required = false) final Map<String, String> properties)
        throws StudioException {

    Context context = RestControllerUtils.createMockContext();
    ItemId templateItemId = new ItemId(itemId);
    InputStream content = null;
    try {
        content = file.getInputStream();
    } catch (IOException e) {
        throw ErrorManager.createError(StudioServerErrorCode.FILE_UPLOAD_IO_ERROR);
    }
    Item item = templateService.update(context, site, templateItemId, content, properties);
    return item;
}

From source file:org.egov.api.controller.ComplaintController.java

/**
 * This will upload complaint support document
 *
 * @param complaintNo/*from w  w  w .  j  a  v  a 2  s.c  om*/
 * @param file
 * @return
 */
@RequestMapping(value = ApiUrl.COMPLAINT_UPLOAD_SUPPORT_DOCUMENT, method = RequestMethod.POST)
public ResponseEntity<String> uploadSupportDocs(@PathVariable final String complaintNo,
        @RequestParam("files") final MultipartFile file) {
    try {
        final Complaint complaint = complaintService.getComplaintByCRN(complaintNo);

        final FileStoreMapper uploadFile = fileStoreService.store(file.getInputStream(),
                file.getOriginalFilename(), file.getContentType(), PGRConstants.MODULE_NAME);
        complaint.getSupportDocs().add(uploadFile);
        complaint.nextOwnerId(null);
        complaint.approverComment(null);
        complaint.sendToPreviousOwner(false);
        complaintService.updateComplaint(complaint);
        return getResponseHandler().success("", getMessage("msg.complaint.update.success"));
    } catch (final Exception e) {
        LOGGER.error(EGOV_API_ERROR, e);
        return getResponseHandler().error(getMessage(SERVER_ERROR));
    }
}

From source file:org.egov.council.web.controller.CouncilPreambleController.java

@RequestMapping(value = "/create", method = RequestMethod.POST)
public String create(@Valid @ModelAttribute final CouncilPreamble councilPreamble, final BindingResult errors,
        @RequestParam final MultipartFile attachments, final Model model, final HttpServletRequest request,
        final RedirectAttributes redirectAttrs, @RequestParam String workFlowAction) {
    validatePreamble(councilPreamble, errors);
    if (errors.hasErrors()) {
        prepareWorkFlowOnLoad(model, councilPreamble);
        return COUNCILPREAMBLE_NEW;
    }//www  .java 2 s  .c om

    if (attachments != null && attachments.getSize() > 0) {
        try {
            councilPreamble.setFilestoreid(
                    fileStoreService.store(attachments.getInputStream(), attachments.getOriginalFilename(),
                            attachments.getContentType(), CouncilConstants.MODULE_NAME));
        } catch (IOException e) {
            LOGGER.error("Error in loading documents" + e.getMessage(), e);
        }
    }
    if (isAutoPreambleNoGenEnabled()) {
        PreambleNumberGenerator preamblenumbergenerator = autonumberServiceBeanResolver
                .getAutoNumberServiceFor(PreambleNumberGenerator.class);
        councilPreamble.setPreambleNumber(preamblenumbergenerator.getNextNumber(councilPreamble));
    }
    councilPreamble.setStatus(egwStatusHibernateDAO.getStatusByModuleAndCode(
            CouncilConstants.PREAMBLE_MODULENAME, CouncilConstants.PREAMBLE_STATUS_CREATED));
    councilPreamble.setType(PreambleType.GENERAL);

    Long approvalPosition = 0l;
    String approvalComment = "";
    String approverName = "";
    String nextDesignation = "";
    if (request.getParameter(APPROVAL_COMENT) != null)
        approvalComment = request.getParameter(APPROVAL_COMENT);
    if (request.getParameter(WORK_FLOW_ACTION) != null)
        workFlowAction = request.getParameter(WORK_FLOW_ACTION);
    if (request.getParameter("approverName") != null)
        approverName = request.getParameter("approverName");
    if (request.getParameter("nextDesignation") != null)
        nextDesignation = request.getParameter("nextDesignation");
    if (request.getParameter(APPROVAL_POSITION) != null && !request.getParameter(APPROVAL_POSITION).isEmpty())
        approvalPosition = Long.valueOf(request.getParameter(APPROVAL_POSITION));

    councilPreambleService.create(councilPreamble, approvalPosition, approvalComment, workFlowAction);

    String message = messageSource.getMessage("msg.councilPreamble.create", new String[] {
            approverName.concat("~").concat(nextDesignation), councilPreamble.getPreambleNumber() }, null);
    redirectAttrs.addFlashAttribute(MESSAGE2, message);
    return REDIRECT_COUNCILPREAMBLE_RESULT + councilPreamble.getId();
}