Jsp中文件下载的处理
Jsp中文件下载的处理
有些人直接把要下载的文件放在项目web下面的虚拟路径下,然后提供链接下载,这种处理对客户端的要求比较高,要求客户机器上必须有要下载的文件类型才可以,没有的话下载下来的数据是乱的。客户端查看自己电脑上的文件类型,比如xp系统,打开一个文件夹,菜单中,工具,文件夹选项,文件类型,针对某个文件类型可以查看高级中的配置。另一种就是用流来进行下载,简单代码如下:
public ActionForward downloadFile(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream fos = null;
InputStream fis = null;
File downloadFile = null;
String dmpFolder = request.getSession().getServletContext()
.getRealPath("")
+ "\\files\\downloads\\";
File folder = new File(dmpFolder);
File[] files = folder.listFiles();
String fileName = request.getParameter("fileName");
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equals(fileName)) {
downloadFile = files[i];
break;
}
}
fis = new FileInputStream(downloadFile);
bis = new BufferedInputStream(fis);
fos = response.getOutputStream();
bos = new BufferedOutputStream(fos);
response.setHeader("Content-disposition", "attachment;filename="
+ URLEncoder.encode(fileName, "utf-8"));
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
fis.close();
bis.close();
fos.close();
bos.close();
return null;
}

浙公网安备 33010602011771号