른록노트
[Spring] Binary String을 다운받는 방법 본문
==== 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로 변환