른록노트

[Spring] Binary String을 다운받는 방법 본문

Web/[Spring]

[Spring] Binary String을 다운받는 방법

른록 2017. 11. 6. 20:55

==== Binary String을 파일다운로드하기

(먼저 Binary, fileName, fileSize를 DB에 저장하고있어야함)



@RequestMapping(value="/common/downloadFile.do")

public void downloadFile(CommandMap commandMap, HttpServletResponse response) throws Exception{

    Map<String,Object> map = commonService.selectFileInfo(commandMap.getMap());

    String fileName = 디비에서 가져온 파일이름;

    int fileSize = 디비에서 가져온 파일 사이즈;

    String fileBinary= 디비에서 가져온 파일 바이너리;


    byte fileByte[] = Base64.getDecoder().decode(fileBinary.getbytes("UTF-8"));

     

    response.setContentType("application/octet-stream");

    response.setContentLength(fileSize);

    response.setHeader("Content-Disposition", "attachment; fileName=\"" + URLEncoder.encode(fileName,"UTF-8")+"\";");

    response.setHeader("Content-Transfer-Encoding", "binary");

    response.getOutputStream().write(fileByte);

     

    response.getOutputStream().flush();

    response.getOutputStream().close();


==================================================

(이건 예시를든것임 이런식으로 로직을 작성하면 됩니다)




==== 참고

@RequestMapping(value="/common/downloadFile.do")

public void downloadFile(CommandMap commandMap, HttpServletResponse response) throws Exception{

    Map<String,Object> map = commonService.selectFileInfo(commandMap.getMap());

    String storedFileName = (String)map.get("STORED_FILE_NAME");

    String originalFileName = (String)map.get("ORIGINAL_FILE_NAME");

     

    byte fileByte[] = FileUtils.readFileToByteArray(new File("C:\\dev\\file\\"+storedFileName));

     

    response.setContentType("application/octet-stream");

    response.setContentLength(fileByte.length);

    response.setHeader("Content-Disposition", "attachment; fileName=\"" + URLEncoder.encode(originalFileName,"UTF-8")+"\";");

    response.setHeader("Content-Transfer-Encoding", "binary");

    response.getOutputStream().write(fileByte);

     

    response.getOutputStream().flush();

    response.getOutputStream().close();


=====이건파일


참고사이트

http://addio3305.tistory.com/84 - 파일다운로드

https://stackoverflow.com/questions/41935207/base64-string-to-byte-in-java - base64 스트링을 byte로 변환

반응형
Comments