Example usage for org.springframework.core.io InputStreamResource InputStreamResource

List of usage examples for org.springframework.core.io InputStreamResource InputStreamResource

Introduction

In this page you can find the example usage for org.springframework.core.io InputStreamResource InputStreamResource.

Prototype

public InputStreamResource(InputStream inputStream) 

Source Link

Document

Create a new InputStreamResource.

Usage

From source file:com.viewer.controller.ViewerController.java

@RequestMapping(value = "/GetPdfWithPrintDialog")
@ResponseBody//from  w w w  . j a va2s . c om
public ResponseEntity<InputStreamResource> GetPdfWithPrintDialog(@RequestParam String path, Boolean getPdf,
        Boolean useHtmlBasedEngine, Boolean supportPageRotation, HttpServletResponse response)
        throws Exception {

    PdfFileOptions options = new PdfFileOptions();
    options.setGuid(path);
    options.setAddPrintAction(true);

    FileContainer result = _imageHandler.getPdfFile(options);

    return ResponseEntity.ok().contentType(MediaType.parseMediaType("application/pdf"))
            .body(new InputStreamResource(result.getStream()));
}

From source file:kr.co.exsoft.external.controller.ExternalPublicController.java

@SuppressWarnings({ "unchecked", "rawtypes" })
@RequestMapping(value = "/restful.postwithfiledown", method = RequestMethod.POST, produces = "applicaion/json; charset=utf8")
@ResponseBody//from   w  ww.j a v  a2s  . com
//@PathVariable String fileID
public ResponseEntity<byte[]> downloadFile(HttpServletRequest request, HttpServletResponse response) {

    String errorMsg = "";
    //???  ?? PageId
    String pageId = request.getParameter("pageId");
    PageDao pageDao = sqlSession.getMapper(PageDao.class);

    PageVO ret = new PageVO();
    HashMap<String, Object> param = new HashMap<String, Object>();
    param.put("page_id", pageId);
    ret = pageDao.pageDetailInfo(param);

    HttpHeaders headers = new HttpHeaders();
    File toServeUp = null;
    InputStream inputStream = null;

    // EXREP  ? . :: eXrep C/S Client ?.  
    EXrepClient eXrepClient = new EXrepClient();

    // ?? 
    String downPath = ConfigData.getString("FILE_DOWN_PATH") + UUID.randomUUID().toString() + "/";
    String downFile = ret.getPage_name();//"word.docx";
    String savePath = downPath + downFile;
    try {
        UtilFileApp.createDir(downPath);
    } catch (SecurityException | IOException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
        errorMsg = "Can't Not Create Directory";
        response.setHeader("errorMsg", errorMsg);
    }

    try {
        // 5. eXrep C/S ?.
        eXrepClient.connect();

        if (eXrepClient.getFile(ret.getVolume_id(), ret.getContent_path(), savePath)) {
            toServeUp = new File(savePath);
            System.out.println("FILE DOWN LOAD COMPLITE");
        }

        // 6. eXrep C/S Client Close
        eXrepClient.disconnect();

    } catch (ExrepClientException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
        errorMsg = "Not Connected FileServer";
        response.setHeader("errorMsg", errorMsg);
    }

    try {

        inputStream = new FileInputStream(toServeUp);

    } catch (FileNotFoundException e) {
        e.printStackTrace();
        errorMsg = "Not Found DownLoadFile";
        response.setHeader("errorMsg", errorMsg);
    }

    InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
    Long fileSize = toServeUp.length();
    headers.setContentLength(fileSize.intValue());

    response.setContentType("application/octer-stream;charset=utf-8");
    response.setCharacterEncoding("utf-8");
    try {
        //? ?
        response.setHeader("filename", java.net.URLEncoder.encode(downFile, "UTF-8"));

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
        errorMsg = "Can't Not Encoding File";
        response.setHeader("errorMsg", errorMsg);
    }

    return new ResponseEntity(inputStreamResource, headers, HttpStatus.OK);
}

From source file:business.services.RequestService.java

public HttpEntity<InputStreamResource> writeRequestListCsv(List<RequestRepresentation> requests) {
    try {/*  w  w w.j a va 2  s  . c  o m*/
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        Writer writer = new OutputStreamWriter(out, CSV_CHARACTER_ENCODING);
        CSVWriter csvwriter = new CSVWriter(writer, ';', '"');
        csvwriter.writeNext(CSV_COLUMN_NAMES);

        for (RequestRepresentation request : requests) {
            List<String> values = new ArrayList<>();
            values.add(request.getRequestNumber());
            values.add(DATE_FORMATTER.print(request.getDateCreated(), LOCALE));
            values.add(request.getTitle());
            values.add(request.getStatus().toString());
            values.add(booleanToString(request.isLinkageWithPersonalData()));
            values.add(request.getLinkageWithPersonalDataNotes());
            values.add(booleanToString(request.isStatisticsRequest()));
            values.add(booleanToString(request.isExcerptsRequest()));
            values.add(booleanToString(request.isPaReportRequest()));
            values.add(booleanToString(request.isMaterialsRequest()));
            values.add(booleanToString(request.isClinicalDataRequest()));
            values.add(request.getRequesterName());
            values.add(request.getLab() == null ? "" : request.getLab().getNumber().toString());
            values.add(request.getRequester() == null ? "" : request.getRequester().getSpecialism());
            values.add(labRequestService.countHubAssistanceLabRequestsForRequest(request.getProcessInstanceId())
                    .toString());
            values.add(request.getPathologistName());
            csvwriter.writeNext(values.toArray(new String[] {}));
        }
        csvwriter.flush();
        writer.flush();
        out.flush();
        InputStream in = new ByteArrayInputStream(out.toByteArray());
        csvwriter.close();
        writer.close();
        out.close();
        InputStreamResource resource = new InputStreamResource(in);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.valueOf("text/csv"));
        String filename = "requests_" + DATE_FORMATTER.print(new Date(), LOCALE) + ".csv";
        headers.set("Content-Disposition", "attachment; filename=" + filename);
        HttpEntity<InputStreamResource> response = new HttpEntity<InputStreamResource>(resource, headers);
        log.info("Returning reponse.");
        return response;
    } catch (IOException e) {
        log.error(e.getStackTrace());
        log.error(e.getMessage());
        throw new FileDownloadError();
    }

}

From source file:org.messic.server.facade.controllers.rest.SongController.java

@ApiMethod(path = "/services/songs/{songSid}/dlna", verb = ApiVerb.GET, description = "Get the audio binary from a song resource of an album for a dlna service", produces = {
        MediaType.APPLICATION_OCTET_STREAM_VALUE })
@ApiErrors(apierrors = { @ApiError(code = UnknownMessicRESTException.VALUE, description = "Unknown error"),
        @ApiError(code = NotAuthorizedMessicRESTException.VALUE, description = "Forbidden access"),
        @ApiError(code = IOMessicRESTException.VALUE, description = "IO error trying to get the audio resource") })
@RequestMapping(value = "/{songSid}/dlna", method = { RequestMethod.GET, RequestMethod.HEAD })
@ResponseStatus(HttpStatus.OK)/*w  ww  .  j a  v a 2s  .  c o  m*/
@ResponseBody
@ApiResponseObject
public ResponseEntity getSongDLNA(
        @ApiParam(name = "songSid", description = "SID of the song resource we want to download", paramType = ApiParamType.PATH, required = true) @PathVariable Long songSid,
        HttpServletRequest request, HttpServletResponse response)
        throws NotAuthorizedMessicRESTException, IOMessicRESTException, UnknownMessicRESTException {
    User user = SecurityUtil.getCurrentUser();

    try {

        HttpHeaders headers = new HttpHeaders();

        // TODO some mp3 songs fail with application/octet-stream
        // MP3 files must have the content type of audio/mpeg or application/octet-stream
        // ogg files must have the content type of application/ogg

        headers.setContentType(MediaType.parseMediaType("audio/mpeg"));

        headers.setConnection("close");
        headers.add("EXT", null);
        headers.add("Accept-Ranges", "bytes");
        headers.add("transferMode.dlna.org", "Streaming");
        headers.add("contentFeatures.dlna.org", "DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0");
        headers.add("realTimeInfo.dlna.org", "DLNA.ORG_TLAG=*");
        headers.setDate(System.currentTimeMillis());

        if (request.getHeader("Range") == null) {
            APISong.AudioSongStream ass = songAPI.getAudioSong(user, songSid);
            headers.setContentLength(ass.contentLength);

            headers.add("Content-Range", "bytes 0-" + ass.contentLength + "/" + ass.contentLength);

            InputStreamResource inputStreamResource = new InputStreamResource(ass.is);

            if (request.getMethod().equalsIgnoreCase("GET")) {
                return new ResponseEntity(inputStreamResource, headers, HttpStatus.OK);
            } else {
                return new ResponseEntity<byte[]>(new byte[0], headers, HttpStatus.OK);
            }
        } else {
            APISong.AudioSongStream ass = songAPI.getAudioSong(user, songSid);

            String range = request.getHeader("Range");
            String[] sbytes = range.split("=")[1].split("-");
            int from = Integer.valueOf(sbytes[0]);
            int to = (int) ass.contentLength;
            if (sbytes.length > 1) {
                to = Integer.valueOf(sbytes[1]);
            }

            headers.setContentLength(to - from);
            headers.add("Content-Range", "bytes " + from + "-" + to + "/" + ass.contentLength);

            if (request.getMethod().equalsIgnoreCase("GET")) {
                UtilSubInputStream usi = new UtilSubInputStream(ass.is, from, to);
                InputStreamResource inputStreamResource = new InputStreamResource(usi);
                return new ResponseEntity(inputStreamResource, headers, HttpStatus.OK);
            } else {
                return new ResponseEntity<byte[]>(new byte[0], headers, HttpStatus.OK);
            }
        }
    } catch (IOException ioe) {
        log.error("failed!", ioe);
        throw new IOMessicRESTException(ioe);
    } catch (Exception e) {
        throw new UnknownMessicRESTException(e);
    }
}

From source file:com.sastix.cms.server.services.content.impl.hazelcast.HazelcastResourceServiceImpl.java

@Override
@Transactional(readOnly = true)/* w ww.j av  a 2s  .c o  m*/
public ResponseEntity<InputStreamResource> getResponseInputStream(String uuid)
        throws ResourceAccessError, IOException {
    // Find Resource
    final Resource resource = resourceRepository.findOneByUid(uuid);
    if (resource == null) {
        return null;
    }

    InputStream inputStream;
    int size;
    //check cache first
    QueryCacheDTO queryCacheDTO = new QueryCacheDTO(resource.getUri());
    CacheDTO cacheDTO = null;
    try {
        cacheDTO = cacheService.getCachedResource(queryCacheDTO);
    } catch (DataNotFound e) {
        LOG.warn("Resource '{}' is not cached.", resource.getUri());
    } catch (Exception e) {
        LOG.error("Exception: {}", e.getLocalizedMessage());
    }
    if (cacheDTO != null && cacheDTO.getCacheBlobBinary() != null) {
        LOG.info("Getting resource {} from cache", resource.getUri());
        inputStream = new ByteArrayInputStream(cacheDTO.getCacheBlobBinary());
        size = cacheDTO.getCacheBlobBinary().length;
    } else {
        try {
            final Path responseFile = hashedDirectoryService.getDataByURI(resource.getUri(),
                    resource.getResourceTenantId());
            inputStream = Files.newInputStream(responseFile);
            size = (int) Files.size(responseFile);

            // Adding resource to cache
            distributedCacheService.cacheIt(resource.getUri(), resource.getResourceTenantId());
        } catch (IOException ex) {
            LOG.info("Error writing file to output stream. Filename was '{}'", resource.getUri(), ex);
            throw new RuntimeException("IOError writing file to output stream");
        } catch (URISyntaxException e) {
            e.printStackTrace();
            throw new RuntimeException("IOError writing file to output stream");
        }
    }

    return ResponseEntity.ok().contentLength(size)
            .contentType(MediaType.parseMediaType(resource.getMediaType()))
            .body(new InputStreamResource(inputStream));
}

From source file:com.baifendian.swordfish.webserver.service.WorkflowService.java

/**
 * @param operator/*from   w  w  w.j  av  a 2s . c o  m*/
 * @param projectName
 * @param name
 * @return
 */
public org.springframework.core.io.Resource downloadProjectFlowFile(User operator, String projectName,
        String name) {

    Project project = projectMapper.queryByName(projectName);

    if (project == null) {
        logger.error("Project does not exist: {}", projectName);
        throw new NotFoundException("Not found project \"{0}\"", projectName);
    }

    //  project ??
    if (!projectService.hasReadPerm(operator.getId(), project)) {
        logger.error("User {} has no right permission for the project {}", operator.getName(),
                project.getName());
        throw new PermissionException("User \"{0}\" is not has project \"{1}\" read permission",
                operator.getName(), project.getName());
    }

    // ? hdfs 
    logger.info("try download workflow {} file from hdfs", name);

    String localFilename = BaseConfig.getLocalWorkflowFilename(project.getId(), UUID.randomUUID().toString());
    String hdfsFilename = BaseConfig.getHdfsWorkflowFilename(project.getId(), name);

    logger.info("download hdfs {} to local {}", hdfsFilename, localFilename);

    try {
        HdfsClient.getInstance().copyHdfsToLocal(hdfsFilename, localFilename, false, true);
    } catch (Exception e) {
        logger.error("try download workflow {} file error", e);
    }

    org.springframework.core.io.Resource file = fileSystemStorageService.loadAsResource(localFilename);

    if (file != null) {
        return file;
    }

    // ?
    logger.info("try download workflow {} file from db", name);
    ProjectFlow projectFlow = flowDao.projectFlowfindByName(project.getId(), name);

    try {
        String json = JsonUtil.toJsonString(new WorkflowData(projectFlow.getFlowsNodes(),
                projectFlow.getUserDefinedParamList(), FlowNode.class));
        InputStreamResource resource = new InputStreamResource(new FileInputStream(json));
        return resource;
    } catch (Exception e) {
        logger.error("download workflow file from db error", e);
        throw new ServerErrorException("download workflow file from db error");
    }
}

From source file:com.viewer.controller.ViewerController.java

@RequestMapping("/GetDocumentPageImage")
@ResponseBody//from   ww w  .  ja  v a2  s .  c om
public final ResponseEntity<InputStreamResource> GetDocumentPageImage(@RequestParam String path, Boolean usePdf,
        Boolean useHtmlBasedEngine, Boolean rotate, int width, int pageindex, int quality) throws Exception {

    lock.lock();
    ViewerConfig imageConfig = new ViewerConfig();
    imageConfig.setStoragePath(_storagePath);
    imageConfig.setTempPath(_tempPath);
    imageConfig.setUseCache(true);
    _imageHandler = new ViewerImageHandler(imageConfig);
    String guid = path;
    int pageIndex = pageindex;
    int pageNumber = pageIndex + 1;
    PageImage pageImage = null;
    ImageOptions imageOptions = new ImageOptions();
    imageOptions.setConvertImageFileType(_convertImageFileType);
    imageOptions.setTransformations(rotate ? Transformation.Rotate : Transformation.None);

    if (rotate && width != 0) {
        DocumentInfoOptions documentInfoOptions = new DocumentInfoOptions(guid);
        DocumentInfoContainer documentInfoContainer = _imageHandler.getDocumentInfo(documentInfoOptions);

        int side = width;
        int pageAngle = 0;
        int count = 0;
        for (PageData page : documentInfoContainer.getPages()) {
            if (count == pageIndex) {
                pageAngle = page.getAngle();
            }
            count++;

        }
        if (pageAngle == 90 || pageAngle == 270) {
            imageOptions.setHeight(side);
        } else {
            imageOptions.setWidth(side);
        }
    }
    List<PageImage> pageImages = (List<PageImage>) _imageHandler.getPages(guid, imageOptions);

    for (PageImage image : pageImages) {

        if (image.getPageNumber() == pageNumber) {
            pageImage = image;

            lock.unlock();
            return ResponseEntity.ok().contentType(GetContentType(_convertImageFileType))
                    .body(new InputStreamResource(pageImage.getStream()));
        }
    }
    lock.unlock();
    return ResponseEntity.ok().contentType(GetContentType(_convertImageFileType))
            .body(new InputStreamResource(pageImage.getStream()));
}

From source file:kr.co.exsoft.external.controller.ExternalPublicController.java

/**
 * <pre>/*from www.  j a  v  a2s . com*/
 * 1.  :[1000]  
 * 2.  : ? 
 * </pre>
 * @Method Name : interfaceFiledownloadHandler
 * @param paraMap
 * @param response
 * @return  ResponseEntity<byte[]>
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
@RequestMapping(value = "/interfaceFiledownload", method = RequestMethod.POST, produces = "applicaion/json; charset=utf8")
@ResponseBody
public ResponseEntity<byte[]> interfaceFiledownloadHandler(@RequestParam HashMap<String, Object> paraMap,
        HttpServletRequest request, HttpServletResponse response) {

    interfacelogger.info("==================== interfaceFiledownloadHandler =====================");

    String errorMsg = "";

    HttpHeaders headers = new HttpHeaders();
    File toServeUp = null;
    InputStream inputStream = null;

    Map<String, Object> list = new HashMap<String, Object>();
    String downFile = "";
    InputStreamResource inputStreamResource = null;
    try {

        SessionVO sessionVO = externalService.interfaceSessionVO(request, paraMap.get("authId").toString());
        list = externalService.interfaceTypePage(paraMap, null, sessionVO);
        toServeUp = (File) list.get("file");
        downFile = list.get("downFile").toString();

        inputStream = new FileInputStream(toServeUp);

        inputStreamResource = new InputStreamResource(inputStream);
        Long fileSize = toServeUp.length();
        headers.setContentLength(fileSize.intValue());

        response.setContentType("application/octer-stream;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        //? ?
        response.setHeader("filename", java.net.URLEncoder.encode(downFile, "UTF-8"));

    } catch (BizException e) {
        response.setHeader("errorMsg", e.getMessage());

        interfacelogger.debug(StringUtil.getHashMap(paraMap));
        interfacelogger.debug(StringUtil.getErrorTrace(e));
    } catch (FileNotFoundException e) {
        errorMsg = "Not Found DownLoadFile";
        response.setHeader("errorMsg", errorMsg);

        interfacelogger.debug(StringUtil.getHashMap(paraMap));
        interfacelogger.debug(StringUtil.getErrorTrace(e));
    } catch (UnsupportedEncodingException e) {
        errorMsg = "Can't Not Encoding FileName";
        response.setHeader("errorMsg", errorMsg);

        interfacelogger.debug(StringUtil.getHashMap(paraMap));
        interfacelogger.debug(StringUtil.getErrorTrace(e));
    } catch (Exception e) {
        errorMsg = "Not Connected FileServer";
        response.setHeader("errorMsg", errorMsg);

        interfacelogger.debug(StringUtil.getHashMap(paraMap));
        interfacelogger.debug(StringUtil.getErrorTrace(e));
    }

    return new ResponseEntity(inputStreamResource, headers, HttpStatus.OK);
}

From source file:org.activiti.idm.engine.IdmEngineConfiguration.java

public static IdmEngineConfiguration parseIdmEngineConfigurationFromInputStream(InputStream inputStream,
        String beanName) {/*from  w  ww . j a v a  2 s. co  m*/
    Resource springResource = new InputStreamResource(inputStream);
    return parseIdmEngineConfiguration(springResource, beanName);
}