我如何强制浏览器(ie7)从请求中加载文件?
How can i force browser(ie7) to load file from request?
我运行 遇到 ie7 不支持 blob 数据类型的问题。
现在我不能强制浏览器(ie7)加载我通过 get 请求从服务器传递的文件。
现代浏览器(chrome、firefox)用这个 js 代码做得很好
var xhr = new XMLHttpRequest();
xhr.open('GET', COEFF_CONTROL_GET_CSV_FILE_URL + "&" + "DWL_PERIOD=2019&DWL_MR=37", true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
//Code below implements file load
var contentDisposition = xhr.getResponseHeader('content-disposition');
var filename = contentDisposition.split("filename=")[1].split(";")[0];
var blob = new Blob([xhr.response], {type: 'text/csv'});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
document.body.appendChild(link);
link.click();
}
}
Headers 我现在通过服务器的请求
header("Content-Type", "text/csv;charset=utf-8");
header("Content-Disposition", "attachment;filename=&mvFileName");
我已经试过了(但没有用)
- Change headers
将不胜感激!
您使用的IE 7浏览器太旧,不在微软的支持范围内。
由于 IE 7 不支持 Blob,您的代码将不适用于 IE 7 版本。
我建议您使用最新的 Microsoft 浏览器。如果您不能使用最新的 Microsoft 浏览器,那么至少要升级到 IE 11 版本。 IE 10 版本开始支持 Blob。
对于IE 11浏览器,建议您使用Navigator.msSaveBlob()方法进行测试
Navigator.msSaveBlob() 方法将文件或 Blob 保存到磁盘。此方法的行为方式与 Navigator.msSaveOrOpenBlob() 相同,只是它会禁用文件打开选项。
示例:
var blob = new Blob(["Sample String\r\n,For Checking, msSaveBlob"],{
type:'text/csv;charset=utf-8;'
});
if(navigator.msSaveBlob){
navigator.msSaveBlob(blob,"sample.csv");
}
参考文献:
我运行 遇到 ie7 不支持 blob 数据类型的问题。
现在我不能强制浏览器(ie7)加载我通过 get 请求从服务器传递的文件。
现代浏览器(chrome、firefox)用这个 js 代码做得很好
var xhr = new XMLHttpRequest();
xhr.open('GET', COEFF_CONTROL_GET_CSV_FILE_URL + "&" + "DWL_PERIOD=2019&DWL_MR=37", true);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
//Code below implements file load
var contentDisposition = xhr.getResponseHeader('content-disposition');
var filename = contentDisposition.split("filename=")[1].split(";")[0];
var blob = new Blob([xhr.response], {type: 'text/csv'});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
document.body.appendChild(link);
link.click();
}
}
Headers 我现在通过服务器的请求
header("Content-Type", "text/csv;charset=utf-8");
header("Content-Disposition", "attachment;filename=&mvFileName");
我已经试过了(但没有用)
- Change headers
将不胜感激!
您使用的IE 7浏览器太旧,不在微软的支持范围内。
由于 IE 7 不支持 Blob,您的代码将不适用于 IE 7 版本。
我建议您使用最新的 Microsoft 浏览器。如果您不能使用最新的 Microsoft 浏览器,那么至少要升级到 IE 11 版本。 IE 10 版本开始支持 Blob。
对于IE 11浏览器,建议您使用Navigator.msSaveBlob()方法进行测试
Navigator.msSaveBlob() 方法将文件或 Blob 保存到磁盘。此方法的行为方式与 Navigator.msSaveOrOpenBlob() 相同,只是它会禁用文件打开选项。
示例:
var blob = new Blob(["Sample String\r\n,For Checking, msSaveBlob"],{
type:'text/csv;charset=utf-8;'
});
if(navigator.msSaveBlob){
navigator.msSaveBlob(blob,"sample.csv");
}
参考文献: