我可以在一个HttpServletResponse中附加多个附件吗

发布于 2021-01-30 15:57:44

例如,我想在一个响应中下载一个zip文件和一个csv文件。除了将这两个文件压缩到一个zip文件中之外,还有其他方法吗?

关注者
0
被浏览
118
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    尽管ServletResponse并不是要这样做,但我们可以通过编程方式对其进行调整,以发送多个文件,除IE以外的所有客户端浏览器似乎都可以正确处理。下面给出了一个示例代码片段。

    response.setContentType("multipart/x-mixed-replace;boundary=END");
    ServletOutputStream out = response.getOutputStream();
    out.println("--END");
    for(File f:files){
          FileInputStream fis = new FileInputStream(file);
          BufferedInputStream fif = new BufferedInputStream(fis);
          int data = 0;
          out.println("--END");
          while ((data = fif.read()) != -1) {
            out.write(data);
          }
          fif.close();
          out.println("--END");
          out.flush();
    }
    out.flush();
    out.println("--END--");
    out.close();
    

    在IE浏览器中将无法使用。注意:不包括尝试捕获块



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看