我遇到了MS Edge 20.10240.16384.0的问题(最新版本有相同的错误)。 我正在尝试用JS下载文件(清除JS,我没有机会使用任何库)。这是我这样做的方式:
window.open(url);
其中url变量是我要下载的文件的URL。打开该URL会立即导致文件下载。问题是下载的文件没有扩展名,其名称似乎是
'=_UTF-8_B_dGVzdEZpbGVOYW1lLV9kc2FkLnBkZg==_='
原始文件名为'test.pdf'
,我的方法适用于Chrome,Firefox和IE11。
有没有解决方案?
感谢。
答案 0 :(得分:1)
花了我几个小时的时间,发现如果文件名带有'£'字符,则该文件将以txt格式下载,并以随机字符作为文件名。
在API中添加了代码,以将“£”替换为“ GBP”作为文件名。 文件下载现在可以正常工作了。
奇怪的是,我对照System.IO.File类提供的Path.InvalidPathChar()列表检查所有字符。但是,“£”会引发错误。这也是为什么我无法立即解决问题的原因,因为我知道“£”是允许使用的字符。
文件下载已通过ASP.Net MVC WebApi测试。 IE和Edge都继续失败,但是Chrome和Mozilla可以正常工作。
答案 1 :(得分:0)
以某种方式修复MS Edge中的错误。我们可以做这样的蠢事。
我不了解您服务器的编程语言。所以我只是给你发一个流程图给你实现它。
这是客户端代码: (对不起,我使用了库(jQuery))
var uid = "12093ujdskf3";
var url;
$.ajax({
dataType: "json",
url: "http://www.example.com/download.jsp",
data: {
uid: uid
},
error: function(){
url = null;
},
success: function(data){
url = data.url;
}
});
if (url == null){
alert("Error occurred!");
return;
}
window.open(url);