Я пытаюсь загрузить несколько файлов по нажатию кнопки в 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 - это массив fileNames в этом формате
["firstFile","secondFile"]
«messages» - это путь, в котором хранится файл. Я делаю для каждого цикла, чтобы всефайлы загружаются. Но только последний файл в массиве загружается. Может кто-нибудь сказать, что я здесь делаю не так?Я закрываю outputStream на каждой итерации. Пока он загружает только последний файл.