javascript - MS Edge 上下载的文件名无效

标签 javascript microsoft-edge

我在使用 MS Edge 20.10240.16384.0 时遇到一些问题(最新版本也有同样的错误)。 我正在尝试使用 JS 下载文件(清晰的 JS,我没有机会使用任何库)。这是我这样做的方法:

window.open(url);

其中 url 变量是我要下载的文件的 URL。打开该 URL 会立即导致文件下载。问题是下载的文件没有扩展名,其名称类似于

'=_UTF-8_B_dGVzdEZpbGVOYW1lLV9kc2FkLnBkZg==_='

原始文件名为'test.pdf',我的方法在 Chrome、Firefox 和 IE11 上完美运行。 有什么解决办法吗?

谢谢。

最佳答案

花了我好几个小时,发现如果文件名包含“£”字符,该文件将以 txt 格式下载,并使用随机字符作为文件名。

在 API 中添加了代码,以将文件名中的“£”替换为“GBP”。 文件下载现在工作得很好。

奇怪的是,我根据 System.IO.File 类提供的 Path.InvalidPathChar() 列表检查所有字符。然而 '£' 会抛出错误。这也是为什么我无法立即解决这个问题,因为我知道“£”是允许的字符。

使用 ASP.Net MVC WebApi 测试文件下载。 IE 和 Edge 总是失败,但 Chrome 和 Mozilla 可以正常工作。

关于javascript - MS Edge 上下载的文件名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160527/

相关文章:

javascript - jquery 按键立即检索值

javascript - apollo-client 服务器到服务器的突变导致错误(查询正常)

javascript - 如何使 Chrome 输入不可选择(但允许编辑)?

javascript - 为什么从 webpack 编译后 Javascript 函数未定义?

javascript - keyup 不适用于动态加载的文本区域

javascript - MS Edge 处理 401 错误,从而绕过我的错误处理程序

java - Selenium -Java : Microsoft Edge automation browser (Windows 10)

javascript - Microsoft Edge 浏览器和打印

html - 用作图标的 PNG 或 ICO 缺乏透明度(IE/Edge)

javascript - 通过 javascript 解析 CSS。 Edge 和 Chrome 之间的不一致