无法下载Java中具有文件名和路径的多个文件

时间:2019-03-05 09:33:48

标签: java html spring-mvc

我正在尝试在Java中单击按钮下载多个文件。

这是我的Java代码

    @RequestMapping(value="/filedownloadFiles/[{fileName}]/{path}",method=
    {RequestMethod.GET,RequestMethod.POST})
    public  void filedownloadFiles(@PathVariable("fileName") List<String>
    fileName,@PathVariable String path,HttpServletResponse response)
    {
        for(String files:fileName) 
        {
         String result =  files.replaceAll("^\"|\"$", "");
         Path file = Paths.get(context.getRealPath("/"+path+"/"), result);
         if (Files.exists(file)) 
          {
            response.setContentType("*/*");
            response.addHeader("Content-Disposition", "attachment; 
            filename="+result);
            try
            {
                Files.copy(file, response.getOutputStream());
                response.getOutputStream().flush();
                response.getOutputStream().close();

            } 
            catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}

我正在传递文件名数组。这是我的html

    <span data-ng-if="note2.images.length>0"><a
    href="./filedownloadFiles/{{note2.noteFile}}/messages" 
    target="_blank">Download files</a></span>

note2.noteFile是这种格式的文件名数组

    ["firstFile","secondFile"]

“消息”是文件存储的路径。我正在执行每个循环,以便下载所有文件。但是仅下载数组中的最后一个文件。任何人都可以告诉我我在这里做错了什么?我将在每次迭代中关闭outputStream。仍然只下载最后一个文件。

0 个答案:

没有答案