반응형
@RequestMapping(value = "/downloadManual", method = RequestMethod.GET)
public void downloadManual(HttpServletResponse response) throws Exception {
FileInputStream fileInputStream = null;
OutputStream out = null;
try {
String path = linuxRootPath + "Manual.docx"; // 경로에 접근할 때 역슬래시('\') 사용
File file = new File(path);
response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());
// 다운로드 되거나 로컬에 저장되는 용도라는 정보를 알려주는 헤더
fileInputStream = new FileInputStream(path); // 파일 읽어오기
out = response.getOutputStream();
int read = 0;
byte[] buffer = new byte[1024];
while ((read = fileInputStream.read(buffer)) != -1) { // 1024바이트씩 계속 읽으면서 outputStream에 저장, -1이 나오면 더이상 읽을
out.write(buffer, 0, read);
}
fileInputStream.close();
out.close();
} catch (Exception e) {
fileInputStream.close();
out.close();
throw new Exception("download error");
} finally {
fileInputStream.close();
out.close();
}
}
반응형
'[Java] > [Java Code]' 카테고리의 다른 글
[Java Code] ini 설정 파일 읽기 (0) | 2022.11.05 |
---|---|
[Java Code] OS, HostName(호스트네임), IP(아이피) 구하기 (1) | 2022.10.11 |
[Java Code] 현 OS의 CPU, MEMORY, HDD의 사용량 및 남은용량 구하기 (0) | 2022.09.04 |
[Java Code] https 통신하기 (SSL 인증 무시하고 작동시키기) (0) | 2022.09.03 |
[Java Code] AES 암호화(Encrypt), 복호화(Decrypt) [AES128, AES192, AES256, IV, SECRET KEY, CBC, ECB, PKCS5 padding] (0) | 2022.09.03 |