Java实现点击下载文件的时候,弹出“另存为”对话框,选择保存位置,然后下载,代码如下:
创新互联建站是一家专业提供重庆企业网站建设,专注与做网站、成都做网站、HTML5建站、小程序制作等业务。10年已为重庆众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
public void downLoad(String filePath, HttpServletResponse response)
throws Exception {
System.out.println("filePath"+filePath);
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();
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();
}
response.setContentType("application/x-download");//设置为下载application/x-download
String filedownload = path;//即将下载的文件的相对路径
String filedisplay = fileName;//下载文件时显示的文件保存名称
String filenamedisplay = URLEncoder.encode(filedisplay,"utf-8");
response.addHeader("Content-Disposition","attachment;filename=" + filenamedisplay);
然后把文件流给response的outputStream
你现在这么直接执行可能是在页面没有返回的super.writeJson(json);信息你就认为不执行了,你先进行调试一下 ,看看到哪步卡住了。我怀疑很可能是super.writeJson(json);这个用的哪里不对可能没返回给页面信息。你可以在这个上一步进行一下打印随意信息看看能不能到这块。确定一下是哪步停住了,然后针对的再找问题。