下载最好新写一个方法new一个新线程去调用,在请求中调用,因为如果请求去调用该方法,会增加耗时。
private HttpServletResponse download(String
path,
HttpServletResponse
response) {
try {
//
path是指欲下载的文件的路径。
File file =
new File(path);
//
取得文件名。
String
filename = file.getName();
//
以流的形式下载文件。
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/x-download");
toClient.write(buffer);
toClient.flush();
toClient.close();
file.delete();
} catch (IOException ex)
{
ex.printStackTrace();
}
return response;
}
加载中,请稍候......