我正在尝试在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。仍然只下载最后一个文件。