gpt4 book ai didi

c# - Microsoft Edge 忽略内容处置响应 header 的 FileName 属性?

转载 作者:行者123 更新时间:2023-11-30 12:41:01 25 4
gpt4 key购买 nike

我正在向浏览器发送一个文件以保存在本地。这在除 Microsoft Edge 之外的所有浏览器中都可以正常工作,在 Microsoft Edge 中它用 guid 替换文件名。该文件必须以特定文件名下载,是否有针对此问题的解释或解决方法?我的回答“不要使用 Edge”将被拒绝。

        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 出于某种原因忽略了这个 header 。

经过长时间的调查和尝试,我得出了 2 种解决方案:
- 始终将您的文件下载为 Zip 文件(这对我来说不是一个选项,而且我发现它在移动设备上特别 Not Acceptable )
- 添加 download attribute下载文件链接并确保属性值具有文件名。 (这解决了边缘问题并在所有其他浏览器上工作正常)

有关属性的更多信息:https://davidwalsh.name/download-attribute

关于c# - Microsoft Edge 忽略内容处置响应 header 的 FileName 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com