我使用以下代码在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
的情况下下载多个文件?
答案 0 :(得分:4)
MIME / multipart 响应不是HTTP标准的一部分。有些浏览器似乎支持它,但我建议不要使用它。
相反,您可以将这些文件打包成 ZIP文件(使用ZipOutputStream),然后将其作为回复。这也是DropBox同时处理多个文件下载的方式。