我在 AppEngine 数据存储上实现了基本的文件上传/下载。
我想要的功能是将名为“base.c”的文件作为文本文件打开。所以我做了以下事情:(
当然我的代码是针对一般情况的,但是这个具体的例子说明了这个问题)
resp.setContentType("text/plain");
resp.setHeader("Content-Disposition", "inline; filename=base.c");
这将在浏览器中将其作为文本文件打开,这正是我所需要的。
但我也希望当用户使用浏览器的“将页面另存为..”选项时,它将提供“base.c”的初始名称。它在 Firefox (6) 中就是这样做的,但它在 chrome(15) 和 safari(5) 上给出了“下载”的默认名称。
Even worse - when choosing base.c as the file name chrome warns the user that this is the wrong extension and asks for confirmation to continue.
现在,如果我使用“附件”而不是“内联”,它不会打开文件,而是用正确的名称下载它。
我该怎么做才能使默认另存为..名称为“base.c”?
这是浏览器的错还是我滥用了 HTTP 标头?
(如果有任何帮助,所有测试都在 OSX 10.6 上,下载站点属于:http:
//------.appspot.com/download?name=base.c)