下载多个文件Java

时间:2014-04-08 09:49:16

标签: java download

我使用以下代码在WEB-INF

中下载文件
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    String b = null;
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
         for (Cookie cookie : cookies) {
           if (cookie.getName().equals("thecookie")) {
               b = cookie.getValue();
            }
          }
        }

    BufferedReader br = new BufferedReader(new FileReader(b+"/logs.txt"));
    String path = br.readLine();
    br.close();

    File file = new File(path+"/Results.xlsx");

    FileInputStream fileIn = new FileInputStream(file);
    ServletOutputStream out = response.getOutputStream();
    response.setHeader("Content-Disposition", "attachment; filename=Result.xlsx");
    response.setContentType(
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

    byte[] outputByte = new byte[4096];
    int bytesRead;
    //copy binary contect to output stream
    while((bytesRead = fileIn.read(outputByte)) != -1)
    {
        out.write(outputByte, 0, bytesRead);
    }
    fileIn.close();
    out.flush();
    out.close();        
}

与此同时我想在同一位置下载另一个文件Results.csv我尝试过两次使用相同的代码,但它没有用。

如何在不使用zipoutputstream的情况下下载多个文件?

1 个答案:

答案 0 :(得分:4)

据我所知,

MIME / multipart 响应不是HTTP标准的一部分。有些浏览器似乎支持它,但我建议不要使用它。

相反,您可以将这些文件打包成 ZIP文件(使用ZipOutputStream),然后将其作为回复。这也是DropBox同时处理多个文件下载的方式。