0

ユーザーが互いにメッセージを送信できるメッセージングシステムを作成しました。メッセージの添付ファイルとしてファイルを送信することもできます(単純な電子メールシステムのようなものです)。Firefox で問題に直面しています。ファイル名にスペースが含まれている場合 (例: ticket.doc の 602_Sign ファイル)、Firefox では 602_Sign.doc で保存されますが、完全な名前が表示されるはずです。問題は IE と chrome で正常に動作しています。ファイルをダウンロードするための私のコード

public ActionResult Download(string attFileName)
        {
            string FileName = Path.Combine(Server.MapPath("~/MessageAttachmentFiles"), attFileName);
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.ClearContent();
            response.Clear();
            Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", System.IO.Path.GetFileName(FileName)));
            response.TransmitFile(FileName);
            response.Flush();
            response.End();
            return null;

        }
4

3 に答える 3

8

以下は動作するはずです

response.AddHeader("Content-Disposition", 
                    string.Format("attachment; filename = \"{0}\"",
                    System.IO.Path.GetFileName(FileName)));

理由の詳細http://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download

于 2012-04-05T07:14:13.180 に答える
3

ファイル名は二重引用符で囲む必要があります

Content-Disposition: attachment; filename="602_Sign File for ticket.doc" 
于 2012-04-05T07:14:40.250 に答える
0
response.AddHeader("Content-Disposition", 
                    string.Format("attachment; filename = \"{0}\"",
                    System.IO.Path.GetFileName(FileName)));

これが正しい解決策です

于 2015-03-20T18:14:36.430 に答える