给出一个文件的链接,执行一个静态的文件,这不过是HTML的脚本书写方式。那么如果我们在内存中生成文件内容,存放在byte[]中,并以指定的文件名字下发给用户,应该如何处理?



response.setHeader("Content-Disposition","attachment; filename=" + fileName);
response.setContentType("application/octet-stream");
ServletOutputStream stream = response.getOutputStream();
stream.write(fileContent); //fileContent是具体内容 byte[]



Content-Disposition将强制浏览器询问用户是否保存文件,而非在浏览器中直接打开。

Java for Web学习笔记(十):Servlet(8)下发文件_保存文件

返回的HTTP 200 OK例子:

Java for Web学习笔记(十):Servlet(8)下发文件_保存文件_02

这种内存方式不适用于内容很大的文件,若如此,则应利用文件,一边从文件读取,以便flush()到PrintWriter中。


相关链接: 我的Professional Java for Web Applications相关文章