자바 다운로드 파일 의 4 가지 방식 요약
public HttpServletResponse download(String path, HttpServletResponse response) {
try {
// path 。
File file = new File(path);
// 。
String filename = file.getName();
// 。
String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
// 。
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// response
response.reset();
// response Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return response;
}
2.로 컬 파일 다운로드
public void downloadLocal(HttpServletResponse response) throws FileNotFoundException {
//
String fileName = "Operator.doc".toString(); //
//
InputStream inStream = new FileInputStream("c:/Operator.doc");//
//
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
//
byte[] b = new byte[100];
int len;
try {
while ((len = inStream.read(b)) > 0)
response.getOutputStream().write(b, 0, len);
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
3.네트워크 파일 다운로드
public void downloadNet(HttpServletResponse response) throws MalformedURLException {
//
int bytesum = 0;
int byteread = 0;
URL url = new URL("windine.blogdriver.com/logo.gif");
try {
URLConnection conn = url.openConnection();
InputStream inStream = conn.getInputStream();
FileOutputStream fs = new FileOutputStream("c:/abc.gif");
byte[] buffer = new byte[1204];
int length;
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
4.온라인 으로 열기 지원
public void downLoad(String filePath, HttpServletResponse response, boolean isOnLine) throws Exception {
File f = new File(filePath);
if (!f.exists()) {
response.sendError(404, "File not found!");
return;
}
BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
byte[] buf = new byte[1024];
int len = 0;
response.reset(); //
if (isOnLine) { //
URL u = new URL("file:///" + filePath);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
// UTF-8
} else { //
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename=" + f.getName());
}
OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) > 0)
out.write(buf, 0, len);
br.close();
out.close();
}
JAVA 에 서 는 파일 을 일괄 다운로드 해 여러 파일 을 zip 파일 로 포장 해 다운로드 합 니 다.
// ( zip )
public static void batchDownLoadFile(HttpServletRequest request,HttpServletResponse response,String filename,String[] filepath,String[] documentname,String loginname){
byte[] buffer = new byte[1024];
Date date=new Date();
// zip
String strZipPath = Constant.exportAddress +loginname+date.getTime()+".zip";
File file=new File(Constant.exportAddress);
if(!file.isDirectory() && !file.exists()){
//
// f.mkdir();
//
file.mkdirs();
}
try {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipPath));
//
for (int i = 0; i < filepath.length; i++) {
File f=new File(filepath[i]);
FileInputStream fis = new FileInputStream(f);
System.out.println(documentname[i]);
out.putNextEntry(new ZipEntry(documentname[i]));
// ,
out.setEncoding("GBK");
int len;
// , zip
while ((len = fis.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.closeEntry();
fis.close();
}
out.close();
PublicMethod.downLoadFile(request, response, strZipPath, filename+".zip");
File temp=new File(strZipPath);
if(temp.exists()){
temp.delete();
}
} catch (Exception e) {
System.out.println(" ");
}
}
총결산자바 가 파일 을 다운로드 하 는 네 가지 방식 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 다운로드 파일 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.