MS Edge 上下载的文件名无效
Invalid downloaded file name on MS Edge
我对 MS Edge 20.10240.16384.0 有一些问题(最新版本有同样的错误)。
我正在尝试使用 JS 下载文件(清晰的 JS,我没有机会使用任何库)。这是我这样做的方式:
window.open(url);
其中 url 变量是 URL 我要下载的文件。打开 URL 立即导致文件下载。问题是下载的文件没有扩展名,它的名字看起来像
'=_UTF-8_B_dGVzdEZpbGVOYW1lLV9kc2FkLnBkZg==_='
原始文件名为'test.pdf'
,我的方法在Chrome、Firefox 和IE11 上完美运行。
有什么解决办法吗?
谢谢。
以某种方式修复 MS Edge 中的错误。我们可以做这样的蠢事。
我不知道你们服务器的编程语言。所以我只是 post 给你一张流程图,供你实施。
这是一个客户端代码:
(不好意思我用了一个库(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);
我花了好几个小时才发现,如果文件名包含“£”字符,则文件将下载为 txt 格式,文件名为随机字符。
在 API 中添加代码以将文件名的“£”替换为 'GBP'。
文件下载现在可以正常工作了。
奇怪的是,我根据 System.IO.File class 提供的 Path.InvalidPathChar() 列表检查所有字符。然而 '£' 会抛出一个错误。这也是我无法立即解决问题的原因,因为我知道“£”是允许的字符。
使用 ASP.Net MVC WebApi 测试文件下载。
IE 和 Edge 一直失败,但 Chrome 和 Mozilla 可以正常工作。
我对 MS Edge 20.10240.16384.0 有一些问题(最新版本有同样的错误)。 我正在尝试使用 JS 下载文件(清晰的 JS,我没有机会使用任何库)。这是我这样做的方式:
window.open(url);
其中 url 变量是 URL 我要下载的文件。打开 URL 立即导致文件下载。问题是下载的文件没有扩展名,它的名字看起来像
'=_UTF-8_B_dGVzdEZpbGVOYW1lLV9kc2FkLnBkZg==_='
原始文件名为'test.pdf'
,我的方法在Chrome、Firefox 和IE11 上完美运行。
有什么解决办法吗?
谢谢。
以某种方式修复 MS Edge 中的错误。我们可以做这样的蠢事。
我不知道你们服务器的编程语言。所以我只是 post 给你一张流程图,供你实施。
这是一个客户端代码: (不好意思我用了一个库(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);
我花了好几个小时才发现,如果文件名包含“£”字符,则文件将下载为 txt 格式,文件名为随机字符。
在 API 中添加代码以将文件名的“£”替换为 'GBP'。 文件下载现在可以正常工作了。
奇怪的是,我根据 System.IO.File class 提供的 Path.InvalidPathChar() 列表检查所有字符。然而 '£' 会抛出一个错误。这也是我无法立即解决问题的原因,因为我知道“£”是允许的字符。
使用 ASP.Net MVC WebApi 测试文件下载。 IE 和 Edge 一直失败,但 Chrome 和 Mozilla 可以正常工作。