我们使用上面示例中的 servlet。只需确保将标题和文件名设置为适当的类型即可。(文件名必须以正确的结尾结尾)
// process the data (In your case go get it)
byte[] data = generateReturnBuffer();
// do not cache
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
// content length is needed for MSIE
response.setContentLength(data.length);
// set the filename and the type
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment;filename=" + "fileName.pdf");
ServletOutputStream out = resp.getOutputStream();
out.write(data);
out.flush();
其中响应是 servlet HttpServletResponse。
在此处查找有效的 mime 类型。
在某些时候,您需要将数据存储在文件或内存中,因为某些版本的 Internet Explorer 需要文件长度。