【发布时间】:2020-03-12 09:53:19
【问题描述】:
我遇到了 ie7 不支持 blob 数据类型的问题。
现在我不能强制浏览器(ie7)加载我通过获取请求从服务器传递的文件。
现代浏览器(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();
}
}
我现在通过服务器的请求传递的标头
header("Content-Type", "text/csv;charset=utf-8");
header("Content-Disposition", "attachment;filename=&mvFileName");
我已经试过了(但没有帮助)
将不胜感激所有可能的帮助!
【问题讨论】:
-
是时候将 Internet Explorer 抛诸脑后了。它已经停产了一段时间。
-
您只想点击链接并强制下载? Example #1
-
@StackSlave,不幸的是除了 ie7 什么都不能用(
-
@StackSlave 我想处理来自 srv 的请求,其中包含 csv 文件并将此文件加载到磁盘上
-
在 ie7 中无法将文件本身保存到浏览器... FlieSystemFileEntry 根本不受 IE 支持。您可以使用
XMLHttpRequest将文件作为XMLHttpRequestInstance.responseText获取,但这将是您必须解析的字符串。就个人而言,我会使用 JavaScript 将XMLHttpRequest发送到 PHP,然后使用 str_getcsv,得到的响应就像那个例子一样,除了你echo json_encode($csv);。
标签: javascript internet-explorer sas internet-explorer-7