qq_43682859
Your_Exios
采纳率100%
2019-05-06 10:39

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

在后台生成了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>

后台代码:

@Override
public 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;
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • xiaocaodaogun 斯科达克 2年前

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

    点赞 评论 复制链接分享
  • wangml010 wangml010 2年前

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

    点赞 评论 复制链接分享
  • qq_33427422 子系天下 2年前

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

    点赞 评论 复制链接分享

为你推荐