0

私はここで奇妙な問題を抱えています.ASP.NETコントローラーで私はそれを行います:

    public ActionResult ExportTex()
    {
        Response.ContentType = "text/plain";
        Response.AddHeader("Content-Disposition", "attachment;filename=\"" + Server.HtmlEncode("overview.tex") + "\"");
        return View(_model);
    }

これにより、ブラウザ(FireFox 17)がファイルダウンロードダイアログを開き、対応するファイル名をダウンロードに使用する必要があります。ただし、Content-Disposition ヘッダーでファイルに名前を付ける方法に関係なく、提供された拡張子.texに加えて、ファイル名には常に拡張子 ".sdx" が追加されます (つまり、FireFox 経由でダウンロードすると、ファイルの名前はoverview.tex.sdxになります)。

この追加の拡張機能がどこから来たのか誰かが説明してくれたら、とてもありがたいです。

このように動作するのは FireFox だけです。代わりに、クロムは魅力のように機能します。

//editリクエストに応じて、FireFox が取得するヘッダーは次のとおりです。

X-SourceFiles:=?UTF-8?[... doesn't matter I guess]?=
X-Powered-By:ASP.NET
X-AspNetMvc-Version:4.0
X-AspNet-Version:4.0.30319
Vary:Accept-Encoding
Set-Cookie:.ASPXROLES=; expires=Mon, 11-Oct-1999 22:00:00 GMT; path=/; HttpOnly
Server:Microsoft-IIS/8.0
Date:Sat, 24 Nov 2012 15:13:40 GMT
Content-Type:text/plain; charset=utf-8
Content-Length:7975
Content-Encoding:gzip
Content-Disposition:attachment;filename="overview.tex"
Cache-Control:private, s-maxage=0
4

1 に答える 1

0

コンテンツ タイプが「text/plain; charset=utf-8」の場合、Firefox はコンテンツ タイプのスニッフィングを行うべきではないため、これは実に奇妙です。

これを複数のマシンで再現できますか? どのプラットフォーム?Windows の場合、「sdx」を処理するソフトウェアがインストールされていますか (レジストリを検索してください...)。

于 2012-11-24T09:08:59.833 に答える