为了账号安全,请及时绑定邮箱和手机立即绑定

Java后台生成文件,前台无法下载

Java后台生成文件,前台无法下载

斯蒂芬大帝 2019-04-19 13:15:24
在后台生成了docx文件,保存在相对路径。然后前台点击文件列表来获取相对路径文件目录下的所有文件,以列表的形式,展示。但是每次生成了文件无法下载,必须重启项目之后,才能下载。直接生成,直接下载,浏览器会报找不到文件的错误,但是重启项目之后,就可以下载了。前台代码: <table class="table table-striped table-hover">             <tr>             <% for (path in FilePaths){             %>             <a href="/static/docx/major/${path.key}" download="${path.key}">${path.key}</a>             <% } %>             </tr>         </table>后台代码:@Overridepublic Map getFileList() {    Map<String,String> map = new HashMap();     String srcPath="src/main/webapp/static/docx/major";     File file = new File(srcPath);     String[] files = file.list();     for (String str:files){         map.put(str,srcPath+"/"+str);     }     return map; }
查看完整描述

4 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

你这种写法是直接读取webapp目录下面的文件,这个目录下面新增或者修改文件都是要重启生效的。这就是为什么你要重启生效的原因。你可以在前端引用一个后台的地址,在后台的方法中输出文件流。


查看完整回答
反对 回复 2019-05-14
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

你的文件路径最好不要放到项目下,跟项目分离,否则会受到项目影响


查看完整回答
反对 回复 2019-05-14
?
温温酱

TA贡献1752条经验 获得超4个赞

首先你要区分服务端和客户端,后端项目部署之后是服务端,你只需要改服务端的文件下载路径,浏览器调用时传参到服务端,服务端获取路径下载对应的文件,服务端或者说jsp什么都不需要做,只传参回去出发下载动作就好

查看完整回答
反对 回复 2019-05-14
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

你的下载逻辑可以放在后端试一试啊,为什么要在页面上写下载逻辑呢?后台生成要下载的文件之后直接下载,还不用将文件路径传到前台了


查看完整回答
反对 回复 2019-05-14
  • 4 回答
  • 0 关注
  • 1379 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号