admin管理员组

文章数量:1564690

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

前端代码:

后台代码:

模板文件放在远程,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是缓存输出流,这是清缓存写出操作

 

自己踩坑,自己记录!

本文标签: 后台浏览器模板Java