给出一个文件的链接,执行一个静态的文件,这不过是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将强制浏览器询问用户是否保存文件,而非在浏览器中直接打开。
返回的HTTP 200 OK例子:
这种内存方式不适用于内容很大的文件,若如此,则应利用文件,一边从文件读取,以便flush()到PrintWriter中。