AppEngineデータストアの上に基本的なファイルのアップロード/ダウンロードを実装しました。
私が欲しい機能は、「base.c」という名前のファイルがテキストファイルとして開かれることです。だから私は次のことをしました:(
もちろん私のコードは一般的なケース用ですが、この特定の例は問題を示しています)
resp.setContentType("text/plain");
resp.setHeader("Content-Disposition", "inline; filename=base.c");
これにより、ブラウザでテキストファイルとして開きます。これは私が必要としていたものです。
ただし、ユーザーがブラウザの「名前を付けてページを保存」オプションを使用すると、「base.c」の初期名が表示されることも必要です。これはfirefox(6)でも同様ですが、chrome(15)とsafari(5)ではデフォルトの名前が「download」になります。
さらに悪いことに、ファイル名としてbase.cを選択すると、chromeはこれが間違った拡張子であることをユーザーに警告し、続行するための確認を求めます。
ここで、「インライン」の代わりに「添付ファイル」を使用すると、ファイルは開かれませんが、正しい名前でダウンロードされます。
デフォルトの名前を「base.c」として保存するにはどうすればよいですか?
これはブラウザのせいですか、それともHTTPヘッダーを誤用していますか?
(助けがあれば、すべてのテストはOSX 10.6で行われ、ダウンロードサイトは次のようなものです:http:
//------。appspot.com/download?name = base.c)