4
我有一個實現IHttpHandler的自定義處理程序。自定義處理程序允許我們爲人們下載文件生成一個動態URL。自定義處理程序不像Firefox上的空格
的代碼看起來是這樣的,
public void ProcessRequest(HttpContext context)
{
context.Response.AddHeader("Content-Disposition", "attachment;filename=" + attachment.FileName);
context.Response.AddHeader("Content-Length", attachment.Fileblob.Length.ToString());
context.Response.ContentType = GetMimeType(attachment.FileName);
context.Response.OutputStream.Write(attachment.Fileblob, 0, attachment.Fileblob.Length);
}
問題是與attachment.Filename。如果文件名恰好有這樣的空間,
文件名 - 1.bmp
然後在Internet Explorer,它工作正常,但在Firefox中的文件下載對話框截斷它是這樣,
文件名
沒有擴展或任何東西。我也試過這個,
attachment.FileName.Replace(」」,‘%20’)
這在IE中再次工作,但在Firefox它導致文件名被設置爲這個在下載對話框,
文件名%20-%201.bmp
我也試過,
HttpUtility.UrlEncode(attachment.FileName)
在兩種火狐一個第二IE導致此,
文件名+ - + 1.bmp
任何想法?
查看以上編輯的問題 – peter 2011-05-26 05:12:58
大部分工作正常。在IE中,它將文件中的哈希變成像'filename#.docx'到'filename_.docx'。雖然沒有高度優先。 – peter 2011-05-29 22:21:58