Notice
Recent Posts
Recent Comments
Link
투케이2K
67. (spring/스프링) Response HttpHeaders setContentType 설정 get 요청 및 파일 다운로드 (file download) 실시 본문
Spring
67. (spring/스프링) Response HttpHeaders setContentType 설정 get 요청 및 파일 다운로드 (file download) 실시
투케이2K 2022. 8. 31. 14:33[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[Controller : 소스 코드]
// TODO [SEARCH FAST] : [TEST_IMG_DOWN] : [테스트 이미지 다운]
@GetMapping("/TEST_IMG_DOWN")
public HttpEntity<byte[]> TEST_IMG_DOWN(@RequestParam Map<String, Object> param) {
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : " + String.valueOf("TOWK_CLASS"));
System.out.println("[METHOD] : " + String.valueOf("TEST_IMG_DOWN"));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 :
*
* [주소 정의] : http://localhost:7000/TEST_IMG_DOWN
* // -----------------------------------------
* */
// [로직 처리 수행 실시]
InputStream fileInputStream = null;
try {
// [1]. 파일 명칭 이름 설정 실시
String fileName = "test.png";
// [2]. 로컬 PC 에 저장된 이미지 파일 불러오기
String filePath = "C:\\Users\\twok\\Desktop\\black_people_icon.png";
// [3]. FileInputStream 을 사용해 파일 읽음
fileInputStream = new FileInputStream(filePath);
// [4]. File to Byte 변환 실시
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int len = fileInputStream.read();
while (len != -1) {
byteArrayOutputStream.write(len);
len = fileInputStream.read();
}
byte [] fileData = byteArrayOutputStream.toByteArray();
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : " + String.valueOf("TOWK_CLASS"));
System.out.println("[fileData] : [LENGTH] : " + String.valueOf(fileData.length));
System.out.println("================================================");
System.out.println("\n");
// [5]. 헤더 설정 실시
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+fileName);
headers.setContentLength(fileData.length);
// [6]. 리턴 반환 실시
fileInputStream.close();
return new HttpEntity<byte[]>(fileData, headers);
}
catch (Exception e){
e.printStackTrace();
try {
if (fileInputStream != null){
fileInputStream.close();
}
}
catch (IOException ex){}
}
return null;
}
[결과 출력]
반응형
'Spring' 카테고리의 다른 글
Comments