>  기사  >  웹 프론트엔드  >  java 및 javascript_javascript 기술을 사용한 첨부파일 다운로드 예시

java 및 javascript_javascript 기술을 사용한 첨부파일 다운로드 예시

WBOY
WBOY원래의
2016-05-16 16:39:321345검색

웹 개발에서는 "다운로드" 모듈을 개발해야 하는 경우가 많습니다. 아래에는 간단한 예가 나와 있습니다.

서버 측에서는 Java 개발을 사용합니다.

@RequestMapping(value = "download.html", method = RequestMethod.GET) 
public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) { 
response.setContentType("charset=UTF-8"); 
File file = new File(path); 
response.setHeader("Content-Disposition", "attachment; filename=a"); 
BufferedInputStream bis = null; 
BufferedOutputStream bos = null; 
OutputStream fos = null; 
InputStream fis = null; 
try { 
fis = new FileInputStream(file.getAbsolutePath()); 
bis = new BufferedInputStream(fis); 
fos = response.getOutputStream(); 
bos = new BufferedOutputStream(fos); 
int bytesRead = 0; 
byte[] buffer = new byte[5 * 1024]; 
while ((bytesRead = bis.read(buffer)) != -1) { 
bos.write(buffer, 0, bytesRead); 
} 
bos.flush(); 
}catch(E e){ 
}finally { 
try { 
bis.close(); 
bos.close(); 
fos.close(); 
fis.close(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
}

프런트 엔드에서 이 주소를 요청하면 서버는 먼저 파일을 찾아 응답 헤더를 설정한 후 스트림을 통해 브라우저에 출력합니다.

브라우저가 응답 본문이 헤더의 스트림 파일임을 발견하면 사용자가 다운로드를 저장할 수 있도록 자동으로 다른 이름으로 저장 창을 호출합니다.

여기서 핵심은 헤더 속성인 Content-Disposition입니다. Content-Disposition은 MIME 프로토콜의 확장이며 첨부 파일을 표시하는 방법을 클라이언트에 지시하는 데 사용됩니다.

두 가지 값으로 설정할 수 있습니다:

인라인 //온라인 오픈

첨부파일 //첨부파일로 다운로드

여기서 설정한 값은 첨부파일이므로 첨부파일로 인식하여 다운로드할 수 있습니다.

위에서는 서버 측 작성 방법을 설명하고, 다음에서는 프런트엔드 요청 방법을 설명합니다.

프런트 엔드 요청에는 세 가지 방법이 있습니다.

1.양식

<form action='download.html' method='post'> 
<input type='submit'/> 
</form>

2.iframe

var iframe = "<iframe style='display:none' src='download.html'></iframe>" 
body.append(iframe);

iframe이 본문에 추가되면 다운로드 링크가 자동으로 요청됩니다.

3.열기

window.open("download.html");

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.