gpt4 book ai didi

javascript - 通过 jQuery 提供的文件被解释为 txt/blob,而不是正确的文件类型

转载 作者:行者123 更新时间:2023-12-03 02:04:32 24 4
gpt4 key购买 nike

我正在运行 AJAX 脚本来提供不同类型的文件(.txt/.msg 以及图像和 PDF)。简而言之,弹出窗口,检索文件,再次自行关闭,非常基本:

$(function(){
$.ajax({
url: '../myUrl/myFile.msg',
method: 'GET',
xhrFields: {
responseType: 'blob'
},
success: function (data) {
var a = document.createElement('a');
document.body.appendChild(a);
var url = window.URL.createObjectURL(data);
a.href = url;
a.download = 'myFile.msg';
a.click();
a.target='_self';
setTimeout(function(){
window.URL.revokeObjectURL(url);
window.close();
}, 500);
}
});
});

我的问题是,通过此功能提供的 .msg 文件(由 MS Outlook 创建)被视为 blob://资源 - 因此,如果我们(懒惰的)用户想立即通过 Firefox 打开他们的 .msg 文件,他们的文本编辑器打开,他们得到了大量编码字符串垃圾。

我不确定这是否是 Outlook/.msg 特有的问题,而且我也不确定这是否只是 Firefox 的问题(Chrome 只是下载该文件)。

有没有办法让浏览器知道发送的文件是 .msg 文件,该文件应该由 Outlook 而不是文本编辑器处理?

最佳答案

通过覆盖 xhr 内容类型,您应该能够触发正确的应用程序打开。尝试将其添加到您的 ajax 调用中:

beforeSend: function(xhr) {
xhr.overrideMimeType('application/vnd.ms-outlook');
}

实际上,这一切似乎(在 Firefox 中)都是删除假定的默认 xml 类型,并使用文件扩展名来确定要使用哪个应用程序。为此,您还可以在覆盖中使用 application/* 甚至只是 *

关于javascript - 通过 jQuery 提供的文件被解释为 txt/blob,而不是正确的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49860826/

24 4 0
文章推荐: javascript - react : Checkbox and file on controlled forms
文章推荐: javascript - 标记上存在未知属性 `selectable`。在 Material UI 中