网页简单文件下载
2015-05-29 19:47
357 查看
最近做一个小项目,需要在网页提供一个按钮,进行简单的文件下载,找了一个简便的方式,现将代码分享,菜鸟新手,共勉!感谢无名大神提供支持。
在servlet中,简单的调用该函数,传入request,response,和供用户下载的File文件即可,
public void download_file(HttpServletRequest request,
HttpServletResponse response, File tempFile)
throws java.io.UnsupportedEncodingException {
String filenamedownload = tempFile.toString();
String filenamedisplay = tempFile.getName();
try {
filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
response.addHeader("Content-Disposition", "attachment;filename="
+ filenamedisplay);
OutputStream output = null;
FileInputStream fis = null;
try {
output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while ((i = fis.read(b)) > 0) {
output.write(b, 0, i);
}
output.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
fis = null;
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
output = null;
}
}
}
}
在servlet中,简单的调用该函数,传入request,response,和供用户下载的File文件即可,
public void download_file(HttpServletRequest request,
HttpServletResponse response, File tempFile)
throws java.io.UnsupportedEncodingException {
String filenamedownload = tempFile.toString();
String filenamedisplay = tempFile.getName();
try {
filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
response.addHeader("Content-Disposition", "attachment;filename="
+ filenamedisplay);
OutputStream output = null;
FileInputStream fis = null;
try {
output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while ((i = fis.read(b)) > 0) {
output.write(b, 0, i);
}
output.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
fis = null;
}
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
output = null;
}
}
}
}