gpt4 book ai didi

javascript - 在 iphone chrome 浏览器中不使用 BLOB 对象下载文件

转载 作者:可可西里 更新时间:2023-11-01 03:58:40 25 4
gpt4 key购买 nike

我正在尝试使用 ajax 调用从服务器 (jsp) 下载 pdf 文件,我从服务器获取 Base 64 格式的数据,然后将其转换为 ArrayBuffer,然后使用 blob 对象下载它,下面的代码工作正常iphone 中除 chrome 之外的所有浏览器,甚至在 iphone 的 safari 中,它都工作正常,我不知道这是什么问题,我们将不胜感激任何帮助

function hello(id)
{
//alert(id);

//alert(id);
var ln="en";
$.ajax({
type:'post',
url:'ajaxurl',
data:{lang:ln,num_srno:id},
success:function(data){
//alert(data);

/* var bytes = new Uint8Array(data); // pass your byte response to this constructor

var blob=new Blob([bytes], {type: "application/pdf"});// change resultByte to bytes

var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myFileName.pdf";
link.click();*/
var sampleArr = base64ToArrayBuffer(data);
saveByteArray("Sample Report", sampleArr);

}

});
}

function base64ToArrayBuffer(base64) {
var binaryString = window.atob(base64);
var binaryLen = binaryString.length;
var bytes = new Uint8Array(binaryLen);
for (var i = 0; i < binaryLen; i++) {
var ascii = binaryString.charCodeAt(i);
bytes[i] = ascii;
}
return bytes;
}
function saveByteArray(reportName, byte) {
var blob = new Blob([byte], {type: "application/pdf"});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
//link.href=window.webkitURL.createObjectURL(blob);
//a.download = file_path.substr(file_path.lastIndexOf('/') + 1);
var fileName = reportName;
link.download = fileName.substr(fileName.lastIndexOf('/') + 1);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);

};

最佳答案

iOS 的 Chrome 存在一些问题。在我的例子中,使用 FileReader() 解决了问题:

var reader = new FileReader();
var out = new Blob([this.response], {type: 'application/pdf'});
reader.onload = function(e){
window.location.href = reader.result;
}
reader.readAsDataURL(out);

关于javascript - 在 iphone chrome 浏览器中不使用 BLOB 对象下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com