이 기사의 예제는 참조에 대한 Java 구현 파일 다운로드에 대한 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
public httpservletresponse 다운로드 (문자열 path, httpservletresponse 응답) {try {// path는 다운로드 할 파일의 경로를 나타냅니다. 파일 = 새 파일 (Path); // 파일 이름을 가져옵니다. 문자열 filename = file.getName (); // 파일의 접미사 이름을 가져옵니다. 문자열 ext = filename.substring (filename.lastIndexof ( ".") + 1) .toupperCase (); // 스트림 형식으로 파일을 다운로드합니다. inputStream fis = new bufferedInputStream (new FileInputStream (PATH)); 바이트 [] buffer = new Byte [fis.available ()]; fis.read (버퍼); fis.close (); // 응답 응답을 클리어. reset (); // 응답의 헤더 응답을 설정합니다 .addheader ( "content-disposition", "첨부 파일; filename =" + new String (filename.getBytes ())); response.addheader ( "Content-Length", "" + file.length ()); outputStream toclient = new bufferedOutputStream (response.getOutputStream ()); Response.setContentType ( "Application/Octet-stream"); toclient.write (버퍼); toclient.flush (); toclient.close (); } catch (ioexception ex) {ex.printstacktrace (); } 반환 응답; } public void downloadLocal (httpservletResponse 응답)이 filenotfoundException을 던지려면 {// 로컬 파일 다운로드 filename = "operator.doc".toString (); // 파일의 기본 저장 이름 // inputStream instream을 읽습니다 = 새 fileInputStream ( "c :/operator.doc"); // 파일 스토리지 경로 // 출력 응답 형식을 설정합니다. reset (); Response.setContentType ( "bin"); response.addheader ( "Content-Disposition", "첨부 파일; filename =/" " + filename +"/""); // 스트림의 데이터를 루프 바이트 바이트 [] b = 새로운 바이트 [100]; int len; try {while ((len = instream.read (b))> 0) response.getOutputStream (). 쓰기 (b, 0, len); instream.close (); } catch (ioexception e) {e.printstacktrace (); }} public void downloadnet (httpservletResponse 응답) 러어 층 러프 렉스크 {// 네트워크 파일 다운로드 int bytesum = 0; int byteread = 0; url url = new URL ( "windine.blogdriver.com/logo.gif"); {urlConnection conn = url.openConnection (); inputStream instream = conn.getInputStream (); fileoutputStream fs = 새 FileOutputStream ( "c :/abc.gif"); 바이트 [] 버퍼 = 새로운 바이트 [1204]; int 길이; while ((byteread = instream.read (buffer))! = -1) {bytesum += byteread; System.out.println (바이트); fs.Write (버퍼, 0, Byteread); }} catch (filenotfoundException e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); }}// 온라인으로 파일을 열 수있는 방법
public void download (String filepath, httpservletresponse 응답, 부울 isonline) 예외 {file f = new File (FilePath); if (! f.exists ()) {response.senderror (404, "파일 찾기!"); 반품; } bufferedInputStream br = new bufferedInputStream (new FileInputStream (f)); 바이트 [] buf = 새로운 바이트 [1024]; int len = 0; response.reset (); // 매우 중요한 경우 (isonline) {// 온라인 Open Method URL u = new URL ( "file : ///" + filepath); response.setContentType (u.openConnection (). getContentType ()); response.setHeader ( "Content-Disposition", "Inline; filename =" + f.getName ()); // 파일 이름은 UTF-8으로 인코딩되어야합니다} else {// 순수한 다운로드 메소드 응답 .setContentType ( "application/x-msdownload"); response.setHeader ( "content-disposition", "첨부 파일; filename =" + f.getName ()); } outputStream out = response.getOutputStream (); while ((len = br.read (buf))> 0) out.write (buf, 0, len); br.close (); out.close (); }위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.