我有一个实现IHttpHandler的自定义处理程序。自定义处理程序允许我们生成一个动态URL供人们下载文件。
代码如下所示,
public void ProcessRequest(HttpContext context)
{
context.Response.AddHeader("Content-Disposition", "attachment;文件名=" + 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);
}
附件.Filename有问题。如果文件名恰好有这样的空格,
文件名-1.bmp
然后在internet explorer上它工作得很好,但在firefox上,文件下载对话框将其截断为这样,
文件名
没有延期或其他任何事情。我也试过这个,
attachment.FileName.Replace(“”,“%20”)
Which works in IE again, but in firefox it results in the 文件名 being set to this in the download dialog,
文件名%20-%201.bmp
我也试过这个,
HttpUtility.UrlEncode(附件.FileName)
在导致这种情况的firefox和IE中,
文件名+-+1.bmp
有什么想法吗?