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.activiti.app.rest.editor.AbstractModelsResource.java

public ModelRepresentation importProcessModel(HttpServletRequest request, MultipartFile file) {

    String fileName = file.getOriginalFilename();
    if (fileName != null && (fileName.endsWith(".bpmn") || fileName.endsWith(".bpmn20.xml"))) {
        try {//from ww  w  .  ja v  a2s  .  c  o m
            XMLInputFactory xif = XmlUtil.createSafeXmlInputFactory();
            InputStreamReader xmlIn = new InputStreamReader(file.getInputStream(), "UTF-8");
            XMLStreamReader xtr = xif.createXMLStreamReader(xmlIn);
            BpmnModel bpmnModel = bpmnXmlConverter.convertToBpmnModel(xtr);
            if (CollectionUtils.isEmpty(bpmnModel.getProcesses())) {
                throw new BadRequestException("No process found in definition " + fileName);
            }

            if (bpmnModel.getLocationMap().size() == 0) {
                BpmnAutoLayout bpmnLayout = new BpmnAutoLayout(bpmnModel);
                bpmnLayout.execute();
            }

            ObjectNode modelNode = bpmnJsonConverter.convertToJson(bpmnModel);

            org.activiti.bpmn.model.Process process = bpmnModel.getMainProcess();
            String name = process.getId();
            if (StringUtils.isNotEmpty(process.getName())) {
                name = process.getName();
            }
            String description = process.getDocumentation();

            ModelRepresentation model = new ModelRepresentation();
            model.setKey(process.getId());
            model.setName(name);
            model.setDescription(description);
            model.setModelType(AbstractModel.MODEL_TYPE_BPMN);
            Model newModel = modelService.createModel(model, modelNode.toString(),
                    SecurityUtils.getCurrentUserObject());
            return new ModelRepresentation(newModel);

        } catch (BadRequestException e) {
            throw e;

        } catch (Exception e) {
            logger.error("Import failed for " + fileName, e);
            throw new BadRequestException(
                    "Import failed for " + fileName + ", error message " + e.getMessage());
        }
    } else {
        throw new BadRequestException(
                "Invalid file name, only .bpmn and .bpmn20.xml files are supported not " + fileName);
    }
}

From source file:com.vsquaresystem.safedeals.location.LocationService.java

@Transactional(readOnly = false)
public Boolean insertAttachments(MultipartFile attachmentMultipartFile)
        throws JsonProcessingException, IOException {
    logger.info("attachmentMultipartFile in service Line31{}", attachmentMultipartFile);
    System.out.println("attachmentMultipartFile" + attachmentMultipartFile);
    File outputFile = attachmentUtils.storeAttachmentByAttachmentType(
            attachmentMultipartFile.getOriginalFilename(), attachmentMultipartFile.getInputStream(),
            AttachmentUtils.AttachmentType.LOCATION);
    return outputFile.exists();
}

From source file:net.solarnetwork.node.setup.web.NodeAssociationController.java

@RequestMapping(value = "/importBackup", method = RequestMethod.POST)
public String importBackup(@RequestParam("file") MultipartFile file, HttpServletRequest request)
        throws IOException {
    final BackupManager manager = backupManagerTracker.service();
    if (manager == null) {
        request.getSession(true).setAttribute("errorMessageKey", "node.setup.restore.error.noBackupManager");
    } else {/*from   ww w .  j a  va 2 s.  c o  m*/
        try {
            manager.importBackupArchive(file.getInputStream());
            request.getSession(true).setAttribute("statusMessageKey", "node.setup.restore.success");
        } catch (Exception e) {
            log.error("Exception restoring backup archive", e);
            Throwable root = e;
            while (root.getCause() != null) {
                root = root.getCause();
            }
            request.getSession(true).setAttribute("errorMessageKey", "node.setup.restore.error.unknown");
            request.getSession(true).setAttribute("errorMessageParam0", root.getMessage());
        }
    }
    return "redirect:/associate";
}

From source file:com.ar.dev.tierra.api.controller.UsuariosController.java

@RequestMapping(value = "/updatePhoto", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<?> updateUsuario(@RequestParam("file") MultipartFile file,
        OAuth2Authentication authentication) {
    try {/* w  w w . j  a v a 2  s  . c om*/
        User user = (User) authentication.getPrincipal();
        Usuarios u = facadeService.getUsuariosDAO().findUsuarioByUsername(user.getUsername());
        if (file.getName().isEmpty() == false) {
            InputStream inputStream = file.getInputStream();
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            int nRead;
            byte[] bytes = new byte[16384];
            while ((nRead = inputStream.read(bytes, 0, bytes.length)) != -1) {
                buffer.write(bytes, 0, nRead);
            }
            buffer.flush();
            u.setImagen(buffer.toByteArray());
            facadeService.getUsuariosDAO().updateUsuario(u);
        }
    } catch (Exception e) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
    return new ResponseEntity<>(HttpStatus.OK);
}

From source file:org.magnum.dataup.MyVideoController.java

@RequestMapping(value = "/video/{id}/data", method = RequestMethod.POST)
public @ResponseBody VideoStatus setVideoData(@PathVariable("id") long id,
        @RequestParam("data") MultipartFile videoData, HttpServletResponse response) {

    if (id == 0 || videoData == null) {
        response.setStatus(404);//ww w  . j a  va  2  s .com
        return (new VideoStatus(VideoState.READY));
    }

    Video v = videos.get(id);

    if (v == null) {
        response.setStatus(404);
        return (new VideoStatus(VideoState.READY));
    }

    try {
        VideoFileManager vfm = VideoFileManager.get();
        vfm.saveVideoData(v, videoData.getInputStream());
    } catch (Exception e) {
        e.printStackTrace();
    }

    return (new VideoStatus(VideoState.READY));
}

From source file:com.dlshouwen.tdjs.video.controller.TdjsVideoController.java

/**
 * //from w ww  .j  ava  2  s  . c om
 *
 * @param request
 * @return
 * @throws Exception
 */
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public AjaxResponse uploadVideo(HttpServletRequest request, HttpServletResponse response) throws Exception {

    String path = "";
    String videoTime = "";
    String coverPath = "";
    MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    MultipartFile multipartFile = multipartRequest.getFile("file");
    String fileName = multipartFile.getOriginalFilename();
    if (multipartFile != null && StringUtils.isNotEmpty(fileName)) {
        JSONObject jobj = FileUploadClient.upFile(request, fileName, multipartFile.getInputStream());
        if (jobj != null && jobj.getString("responseMessage").equals("OK")) {
            path = jobj.getString("fpath");
            //
            videoTime = jobj.getString("videoTime");
            coverPath = jobj.getString("videoCoverPath");
        }
    }
    WebUtil.addCookie(request, response, "videoPath", path, -1);
    WebUtil.addCookie(request, response, "videoTime", videoTime, -1);
    WebUtil.addCookie(request, response, "coverPath", coverPath, -1);

    //      ?
    AjaxResponse ajaxResponse = new AjaxResponse();
    ajaxResponse.setSuccess(true);
    ajaxResponse.setSuccessMessage("???");
    //      ?
    LogUtils.updateOperationLog(request, OperationType.UPDATE,
            "??" + fileName);
    return ajaxResponse;
}

From source file:ru.mystamps.web.validation.jsr303.ImageFileValidator.java

@Override
@SuppressWarnings("PMD.CyclomaticComplexity")
public boolean isValid(MultipartFile file, ConstraintValidatorContext ctx) {

    if (file == null) {
        return true;
    }//from  ww  w . j  a  v a2 s  . c om

    if (file.isEmpty()) {
        return false;
    }

    String contentType = file.getContentType();
    if (!PNG_CONTENT_TYPE.equals(contentType) && !JPEG_CONTENT_TYPE.equals(file.getContentType())) {
        LOG.debug("Reject file with content type '{}'", contentType);
        return false;
    }

    try (InputStream stream = file.getInputStream()) {

        byte[] firstPart = readFourBytes(stream);
        if (firstPart == null) {
            LOG.warn("Failed to read 4 bytes from file");
            return false;
        }

        if (isJpeg(firstPart)) {
            return true;
        }

        if (doesItLookLikePng(firstPart)) {
            byte[] secondPart = readFourBytes(stream);
            if (isItReallyPng(secondPart)) {
                return true;
            }

            LOG.debug("Looks like file isn't a PNG image. First bytes: {} {}", formatBytes(firstPart),
                    formatBytes(secondPart));
            return false;
        }

        LOG.debug("Looks like file isn't an image. First bytes: {}", formatBytes(firstPart));
        return false;

    } catch (IOException e) {
        LOG.warn("Error during file type validation: {}", e.getMessage());
        return false;
    }
}

From source file:org.flowable.ui.modeler.service.FlowableModelQueryService.java

public ModelRepresentation importCaseModel(HttpServletRequest request, MultipartFile file) {

    String fileName = file.getOriginalFilename();
    if (fileName != null && (fileName.endsWith(".cmmn") || fileName.endsWith(".cmmn.xml"))) {
        try {//  ww w  . j a  va  2  s . c  om
            XMLInputFactory xif = XmlUtil.createSafeXmlInputFactory();
            InputStreamReader xmlIn = new InputStreamReader(file.getInputStream(), "UTF-8");
            XMLStreamReader xtr = xif.createXMLStreamReader(xmlIn);
            CmmnModel cmmnModel = cmmnXmlConverter.convertToCmmnModel(xtr);
            if (CollectionUtils.isEmpty(cmmnModel.getCases())) {
                throw new BadRequestException("No cases found in definition " + fileName);
            }

            if (cmmnModel.getLocationMap().size() == 0) {
                throw new BadRequestException("No CMMN DI found in definition " + fileName);
            }

            ObjectNode modelNode = cmmnJsonConverter.convertToJson(cmmnModel);

            Case caseModel = cmmnModel.getPrimaryCase();
            String name = caseModel.getId();
            if (StringUtils.isNotEmpty(caseModel.getName())) {
                name = caseModel.getName();
            }
            String description = caseModel.getDocumentation();

            ModelRepresentation model = new ModelRepresentation();
            model.setKey(caseModel.getId());
            model.setName(name);
            model.setDescription(description);
            model.setModelType(AbstractModel.MODEL_TYPE_CMMN);
            Model newModel = modelService.createModel(model, modelNode.toString(),
                    SecurityUtils.getCurrentUserObject());
            return new ModelRepresentation(newModel);

        } catch (BadRequestException e) {
            throw e;

        } catch (Exception e) {
            LOGGER.error("Import failed for {}", fileName, e);
            throw new BadRequestException(
                    "Import failed for " + fileName + ", error message " + e.getMessage());
        }
    } else {
        throw new BadRequestException(
                "Invalid file name, only .cmmn and .cmmn.xml files are supported not " + fileName);
    }
}

From source file:org.flowable.ui.modeler.service.FlowableModelQueryService.java

public ModelRepresentation importProcessModel(HttpServletRequest request, MultipartFile file) {

    String fileName = file.getOriginalFilename();
    if (fileName != null && (fileName.endsWith(".bpmn") || fileName.endsWith(".bpmn20.xml"))) {
        try {/*from   w  ww  .ja  v  a 2 s.co  m*/
            XMLInputFactory xif = XmlUtil.createSafeXmlInputFactory();
            InputStreamReader xmlIn = new InputStreamReader(file.getInputStream(), "UTF-8");
            XMLStreamReader xtr = xif.createXMLStreamReader(xmlIn);
            BpmnModel bpmnModel = bpmnXmlConverter.convertToBpmnModel(xtr);
            if (CollectionUtils.isEmpty(bpmnModel.getProcesses())) {
                throw new BadRequestException("No process found in definition " + fileName);
            }

            if (bpmnModel.getLocationMap().size() == 0) {
                BpmnAutoLayout bpmnLayout = new BpmnAutoLayout(bpmnModel);
                bpmnLayout.execute();
            }

            ObjectNode modelNode = bpmnJsonConverter.convertToJson(bpmnModel);

            org.flowable.bpmn.model.Process process = bpmnModel.getMainProcess();
            String name = process.getId();
            if (StringUtils.isNotEmpty(process.getName())) {
                name = process.getName();
            }
            String description = process.getDocumentation();

            ModelRepresentation model = new ModelRepresentation();
            model.setKey(process.getId());
            model.setName(name);
            model.setDescription(description);
            model.setModelType(AbstractModel.MODEL_TYPE_BPMN);
            Model newModel = modelService.createModel(model, modelNode.toString(),
                    SecurityUtils.getCurrentUserObject());
            return new ModelRepresentation(newModel);

        } catch (BadRequestException e) {
            throw e;

        } catch (Exception e) {
            LOGGER.error("Import failed for {}", fileName, e);
            throw new BadRequestException(
                    "Import failed for " + fileName + ", error message " + e.getMessage());
        }
    } else {
        throw new BadRequestException(
                "Invalid file name, only .bpmn and .bpmn20.xml files are supported not " + fileName);
    }
}