将数据转储到响应流时如何指定文件名?
现在我正在做以下事情:
byte[] data= GetFoo();
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.BinaryWrite(data);
Response.End();
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我得到"foo.aspx.pdf"作为要保存的文件名.我似乎记得能够在响应中添加标头以指定要保存的文件名.
我在Servlet中使用此代码,该Servlet设置内联PDF文档的文件名:
response.setContentType("application/pdf");
response.setContentLength((int) file.length());
response.setHeader("Content-disposition", "inline; filename=\"" + file.getName() + "\"");
Run Code Online (Sandbox Code Playgroud)
但是这在IE 9中不起作用:"另存为..."对话框仅显示URL的最后一个路径部分,后跟".pdf"(对于"/ some/url/invoice",它是"invoice.pdf" )
这是一个已知的错误?有解决方法吗?