웹 개발에서 종종 "다운로드"모듈을 개발해야합니다. 다음은 간단한 예입니다.
서버 측면에서 Java를 사용하여 다음을 개발하십시오.
@requestmapping (value = "download.html", method = requestmethod.get) public void download (string resourceid, httpservletrequest request, httpservletreponse responsk) {response.setContentType ( "charset = utf-8"); 파일 = 새 파일 (Path); response.setheader ( "내용화", "첨부 파일; filename = a"); bufferedInputStream bis = null; BufferedOutputStream BOS = NULL; outputStream fos = null; inputStream fis = null; try {fis = new FileInputStream (file.getAbsolutePath ()); BIS = 새로운 BufferedInputStream (FIS); fos = response.getOutputStream (); BOS = 새로운 BufferedOutputStream (FOS); int bytesread = 0; 바이트 [] 버퍼 = 새로운 바이트 [5 * 1024]; while ((bytesread = bis.read (buffer))! = -1) {bos.write (buffer, 0, bytesread); } bos.flush (); } catch (e e) {} 마침내 {try {bis.close (); bos.close (); fos.close (); fis.close (); } catch (ioexception e) {e.printstacktrace (); }}}프론트 엔드 에서이 주소를 요청하면 서버는 먼저 파일을 찾아 응답 헤더를 설정 한 다음 스트림을 통해 브라우저쪽으로 출력합니다.
브라우저가 헤더에서 응답 본문이 스트림 파일임을 찾으면 Save를 자동으로 창으로 호출하여 사용자가 다운로드를 저장할 수 있도록합니다.
여기서 핵심은 내용화의 헤더 속성입니다. Content-Disposition은 클라이언트가 첨부 파일을 표시하는 방법을 나타내는 MIME 프로토콜의 확장입니다.
두 가지 값으로 설정할 수 있습니다.
인라인 // 온라인으로 열립니다
첨부 파일 // 첨부 파일로 다운로드합니다
여기서 우리는 값을 첨부 파일로 설정하여 첨부 파일로 인식하고 다운로드 할 수 있습니다.
위의 내용은 서버 측에 글을 쓰는 방법과 프론트 엔드를 요청하는 방법에 대한 이야기에 대해 이야기합니다.
프론트 엔드를 요청하는 세 가지 방법이 있습니다.
1. 양식
<form action = 'download.html'method = 'post'> <input type = '제출'/> </form>
2. Iframe
var iframe = "<iframe style = 'display : none'src = 'download.html'> </iframe>"body.append (iframe);
Iframe이 신체에 추가되면 다운로드 링크가 자동으로 요청됩니다.
3. 열기
window.open ( "download.html");