先贴上代码:(测试代码)

前端代码:

java 下载模板,后台正常,浏览器没反应问题

后台代码:

java 下载模板,后台正常,浏览器没反应问题

模板文件放在远程,filePath是我的模板文件路径

通过url方式获取文件正常,之前自己测试先用BufferedOutputStream读出在本地没问题。

现在bufferedOutputStream是获取的response的outputStream对象,断点可以看到,获取的对象其实没有流数据存在,通过读取模板文件流数据,写入response中的outputStream,返回到前端。

这里遇到坑:

前端之前用的是ajax的形式访问的,后台不报错,前端能进success回调,但没有任何反应。

是因为Ajax的返回类型是json、text、html、xml等类型,不是流类型,所以无法实现文件下载。

所以这里灵活选用了window.href的访问接口方式,请求后正常弹出浏览器存储的弹窗。下载成功。

另外注意点:

 response.setHeader("Content-type", "application-download");  // 等于告诉浏览器,这是一个下载操作

out.flush();  //bufferedoutputstream是缓存输出流,这是清缓存写出操作

 

自己踩坑,自己记录!

相关文章:

  • 2021-09-11
  • 2021-08-12
  • 2021-12-05
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-11-27
  • 2021-09-15
  • 2022-01-10
相关资源
相似解决方案