Firefox 向具有假定良好 MIME 类型的 Open XML 电子表格文件添加错误的扩展名
Firefox add wrong extention to OpenXML spreadsheet file with supposed good MIME type
我正在创建一个网页,该网页使用脚本 FileSaver.js (https://github.com/eligrey/FileSaver.js) 让用户下载一个 OpenXML 文件。
这里是使用Ajax下载文件,解压后让用户下载的函数:
function dlExcel(){
var bOk = true;
try {
var isFileSaverSupported = !!new Blob;
} catch (e) {
bOk = false;
alert("Votre navigateur ne supporte pas l'expore des fichiers excel, veuillez le metre à jour.");
}
var oReq = new XMLHttpRequest();
oReq.open("GET", "AJXExcel.aspx", true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
if (oReq.status == 503){
alert("Une erreur est survenue");
}
else if (oReq.status == 208){
alert("Le fichier demandé comporte trop de ligne, veuillez affiner votre recherche à l'aide des filtres poposé");
}else{
var arrayBuffer = new Uint8Array(oReq.response);
var gunzip = new Zlib.Gunzip(arrayBuffer);
var plain = gunzip.decompress();
var blob = new Blob([plain], {
"type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
});
if(oReq.status == 206)
alert("Le fichier généré comportait trop de lignes, il a donc été tronqué");
saveAs(blob,"resultats.xml");
}
document.getElementById("ctl00_ctl00_MenuContentPlaceHolder_MainContentPlaceHolder_loading").style.display = "none";
document.getElementById("ctl00_ctl00_MenuContentPlaceHolder_MainContentPlaceHolder_param").style.display = "block";
}
if (bOk){
oReq.send(null);
}
}
我尝试了很多 MIME 类型和扩展名,它们要么使用 XML 编辑器(确定使用软件打开 XML 文件的 office 软件)打开,要么直接使用 Excel(我想要的)但是 Firefox 在 .xml 之后添加了一个 .xls,这样就形成了一个 excel 拒绝打开的 file.xLs.xml。
我无法在网上找到类似的问题,所以如果我至少能知道是什么原因造成的,我将不胜感激!
起初我想到的是 Windows 注册表,但问题似乎只发生在 Firefox 上。
我在这里 找到了一个类似的 post。
它看起来像一个已报告的错误。
虽然这个故障似乎还没有得到证实。
但是你不能尝试使用 mime 类型 vdn.application/xml
。
我正在创建一个网页,该网页使用脚本 FileSaver.js (https://github.com/eligrey/FileSaver.js) 让用户下载一个 OpenXML 文件。
这里是使用Ajax下载文件,解压后让用户下载的函数:
function dlExcel(){
var bOk = true;
try {
var isFileSaverSupported = !!new Blob;
} catch (e) {
bOk = false;
alert("Votre navigateur ne supporte pas l'expore des fichiers excel, veuillez le metre à jour.");
}
var oReq = new XMLHttpRequest();
oReq.open("GET", "AJXExcel.aspx", true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
if (oReq.status == 503){
alert("Une erreur est survenue");
}
else if (oReq.status == 208){
alert("Le fichier demandé comporte trop de ligne, veuillez affiner votre recherche à l'aide des filtres poposé");
}else{
var arrayBuffer = new Uint8Array(oReq.response);
var gunzip = new Zlib.Gunzip(arrayBuffer);
var plain = gunzip.decompress();
var blob = new Blob([plain], {
"type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
});
if(oReq.status == 206)
alert("Le fichier généré comportait trop de lignes, il a donc été tronqué");
saveAs(blob,"resultats.xml");
}
document.getElementById("ctl00_ctl00_MenuContentPlaceHolder_MainContentPlaceHolder_loading").style.display = "none";
document.getElementById("ctl00_ctl00_MenuContentPlaceHolder_MainContentPlaceHolder_param").style.display = "block";
}
if (bOk){
oReq.send(null);
}
}
我尝试了很多 MIME 类型和扩展名,它们要么使用 XML 编辑器(确定使用软件打开 XML 文件的 office 软件)打开,要么直接使用 Excel(我想要的)但是 Firefox 在 .xml 之后添加了一个 .xls,这样就形成了一个 excel 拒绝打开的 file.xLs.xml。
我无法在网上找到类似的问题,所以如果我至少能知道是什么原因造成的,我将不胜感激!
起初我想到的是 Windows 注册表,但问题似乎只发生在 Firefox 上。
我在这里
它看起来像一个已报告的错误。
虽然这个故障似乎还没有得到证实。
但是你不能尝试使用 mime 类型 vdn.application/xml
。