当前位置: 首页 > 面试题库 >

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

令狐弘益
2023-03-14
问题内容

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


问题答案:

尽管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浏览器中将无法使用。注意:不包括尝试捕获块



 类似资料:
  • 我知道,通过将参数传递给,我可以将数据文件保存到压缩的CSV文件中。 这个问题是由我用熊猫处理一个大型CSV文件引起的。我需要产生压缩的CSV输出,并且正在将CSV文件分块处理成一个DataFrame,这样我就不会遇到MemoryError。因此,对我来说,最符合逻辑的做法是将每个输出DataFrame块添加到一个压缩的zip文件中。 我使用的是Python 3.4和Pandas 0.16.1。

  • 问题内容: 我是python的新手,我列出了每年的年份和值。我想做的是检查字典中是否已经存在年份,如果存在,则将值附加到特定键的值列表中。 例如,我有一个年份列表,每年都有一个值: 我想做的是用年作为键填充那些字典,而那些数字作为值填充字典。但是,如果我两次列出了2009,那么我想将该第二个值追加到该词典中的值列表中,因此我想: 现在,我有以下内容: 问题答案: 如果我可以重新表述您的问题,您想要

  • 问题内容: 我是python的新手,我列出了每年的年份和值。我想做的就是检查字典中是否已经存在年份,如果存在,则将值附加到特定键的值列表中。 举例来说,我有一个年份列表,每年都有一个值: 我想做的是用年作为键填充那些字典,而那些数字作为值填充字典。但是,如果我两次列出了2009,那么我想将该第二个值附加到该词典中的值列表中,因此我想: 现在,我有以下内容: 问题答案: 如果我可以重新表述你的问题,

  • 我可以在xml配置的日志中禁用附加符吗?我有我的配置,我想放两个追加,一个用于数据库,另一个用于文本日志,但只有一个必须被激活。谢谢!

  • 问题内容: 我想将五个文件的内容照原样复制到一个文件中。我尝试使用cp为每个文件执行此操作。但这会覆盖从先前文件复制的内容。我也试过 它没有用。 我希望我的脚本在每个文本文件的末尾添加换行符。 例如。文件1.txt,2.txt,3.txt。将1,2,3的内容放入0.txt 我该怎么做 ? 问题答案: 您需要(concatenate的简称)命令,并使用shell重定向()进入输出文件

  • 问题内容: 我有: 我想把这些陈述变成几句话。 问题答案: 否。附加整个序列的方法是。