HTTP response header中的Content-Disposition 允许 servlet 指定文档表示的信息。使用这种header ,你就可以将文档指定成单独打开(而不是在浏览器中打开),还可以根据用户的操作来显示。
如果用户要保存文档,你还可以为该文档建议一个文件名。这个建议名称会出现在 Save As 对话框的“文件名”栏中。如果没有指定,则对话框中就会出现 servlet 的名字。
servlet 中,将 header 设置成下面这样:
response.setHeader( "Content-Disposition ", "attachment;filename= "+filename);
【点击会提供对话框选择另存为】
response.setHeader( "Content-Disposition ", "inline;filename= "+fliename)
【点击打开会在IE中打开】
需要说明的有三点:
1,中文文件名需要进行iso8859-1转码方可正确显示:
filename = new String(filename.getBytes( "GBK "), "iso8859-1 ");
2, 传递的文件名,需要包含后缀名(如果此文件有后缀名),否则丢失文件的属性,而不能自行选择相关程序打开。
3,有下载前询问(是打开文件还是保存到计算机)和通过IE浏览器直接选择相关应用程序插件打开两种方式,前者如上代码所示,后者如下:
response.setHeader( "Content-Disposition ", "filename= "+filename);
直接打开附件,而不弹出【打开】【另存为】对话框方法
最新推荐文章于 2023-11-22 17:59:42 发布