반응형
가장 간단하게 다운로드 하는 방법이
<a href="경로" download></a>
라고 들었으나 이상하게 나는 다운로드가 실행되는 것이 아니라
창에서 경로 이동이 되는 현상이 있었다.
그래서 일단 제쳐두고 찾아본 것이 단일 파일 다운로드 코드
@RequestMapping("fileDownload.do")
public void test(ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
String dFile = "테스트.txt";
String upDir = "D:/upload/";
String path = upDir+File.separator+dFile;
File file = new File(path);
String userAgent = request.getHeader("User-Agent");
boolean ie = userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("rv:11") > -1;
String fileName = null;
if (ie) {
fileName = URLEncoder.encode(file.getName(), "utf-8");
} else {
fileName = new String(file.getName().getBytes("utf-8"),"iso-8859-1");
}
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=\"" +fileName+"\";");
FileInputStream fis=new FileInputStream(file);
BufferedInputStream bis=new BufferedInputStream(fis);
ServletOutputStream so=response.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(so);
byte[] data=new byte[2048];
int input=0;
while((input=bis.read(data))!=-1){
bos.write(data,0,input);
bos.flush();
}
if(bos!=null) bos.close();
if(bis!=null) bis.close();
if(so!=null) so.close();
if(fis!=null) fis.close();
}
}
출처
반응형
'Java' 카테고리의 다른 글
[줌 클론코딩] #0.1 Requirements (0) | 2022.02.09 |
---|---|
JDK vs JRE (0) | 2021.10.27 |
[Java] String, (toString), valueOf (0) | 2021.08.10 |
[JAVA] 버블정렬 (0) | 2021.05.28 |
[JAVA] JVM의 메모리 구조 (0) | 2021.05.28 |