C# Microsoft Edge忽略内容处置响应头';s文件名属性?
我正在向浏览器发送一个文件,以便在本地保存。这在除Microsoft Edge之外的所有浏览器中都可以正常工作,在Microsoft Edge中,它将文件名替换为guid。该文件必须使用特定的文件名下载,对此问题是否有解释或解决方法?我的回答“不要使用Edge”将被拒绝C# Microsoft Edge忽略内容处置响应头';s文件名属性?,c#,microsoft-edge,httpresponsemessage,C#,Microsoft Edge,Httpresponsemessage,我正在向浏览器发送一个文件,以便在本地保存。这在除Microsoft Edge之外的所有浏览器中都可以正常工作,在Microsoft Edge中,它将文件名替换为guid。该文件必须使用特定的文件名下载,对此问题是否有解释或解决方法?我的回答“不要使用Edge”将被拒绝 var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayCon
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(CreateFile(fileContents))
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = string.Concat(fileName, ".xlsx")
};
我在Edge上也遇到了同样的问题,当用户单击下载.ai文件时,它会自动打开为.pdf文件,而不是下载.ai文件 ContentDisposition是正确的,在所有浏览器上都能很好地工作,但是Edge似乎出于某种原因忽略了这个标题 经过长时间的调查和尝试,我得出了两种解决方案:
-始终以Zip文件的形式下载您的文件(这不是我的选项,我觉得这在移动设备上是不可接受的)
-将添加到下载文件链接,并确保属性值具有文件名。(这解决了edge上的问题,在所有其他浏览器上都可以正常工作)
关于属性的更多信息:这似乎是Edge中的一个长期缺陷,目前尚未修复: