반응형
자바 파일 다운로드 기능 구현할 수 있는 소스입니다.
package sample.a.b.c;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/download.do")
public void fileDown(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
// 파일명
String fileName = "샘플 파일명.hwp";
// 파일이 있는 경로
String filePath = "D:\\webapps\\project\\document";
File file = new File(filePath, fileName);
int fileSize = (int) file.length();
fileName = URLEncoder.encode(fileName, "UTF-8");
fileName = fileName.replaceAll("\\+", "%20"); // 파일명에 띄어쓰기가 있을 때 + 를 공백으로 바꿔줌
if(fileSize > 0){
String encodedFileNm = "attachment; filename*=" + "UTF-8" + "''" + fileName;
response.setContentType("application/octet-stream; charset=utf-8");
response.setHeader("Content-Disposition", encodedFileNm);
response.setContentLength(fileSize);
BufferedInputStream in = null;
BufferedOutputStream out = null;
in = new BufferedInputStream(new FileInputStream(file));
out = new BufferedOutputStream(response.getOutputStream());
try {
byte[] bf = new byte[4096];
int br = 0;
while((br = in.read(bf))!= -1){
out.write(bf, 0, br);
out.flush();
}
} finally {
// 오류
}
}
} catch (Exception e) {
// 오류
}
}
이것도 역시나 파일 다운로드에만 필요한 소스이기 때문에 적절히 잘 활용해서 쓰시면 됩니다.
반응형
'DEV > JAVA' 카테고리의 다른 글
| Java 에서 이전 페이지 URL 가져오는 방법 (0) | 2023.07.20 |
|---|---|
| Java Excel 다운로드 기능 구현하기 (0) | 2023.06.27 |
| Java 파일 다운로드 시 파일명의 공백문자 +로 표시되는 현상 고치기 (0) | 2023.06.26 |
| Java 파일 업로드 기능 구현하기 (0) | 2023.06.24 |
| Java 파일 삭제 기능 구현하기 : delete() (0) | 2023.06.23 |