gpt4 book ai didi

javascript - 将 Blob 转换为文件并在浏览器中预览(不是下载)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:55 24 4
gpt4 key购买 nike

我从网络服务标注中获取 Blob 内容,要求是在浏览器中显示该文件。

我有什么:

  • Blob 文件(fileBlob)

上面的 blob 参数我得到作为响应并将其发送回“回调”中的 javascript 方法。我正在尝试将 blob 转换为相应的文件格式并在浏览器上查看(除非最终用户需要,否则我不想下载)。

我在下面试过:

    var callback1 = { 
onSuccess: function(e){ //e is the blob content I am receiving
alert('Receiving file from SF:---> ' + e);
var file = new File([e], "uploaded_file.pdf", { type: "application/pdf", lastModified: Date.now() });
//document.body.append(file);
//var blob=new Blob([e], {type:"application/pdf"});
var link=document.createElement('a');
//link.href=window.URL.createObjectURL(e);
link.download=file;
link.click();

}, onFailure: function(error){
alert(error);
}
};

更新 enter image description here

更新 2(将响应处理为 base64 之后) enter image description here

最佳答案

利用 iframe 显示 pdf 文件,函数如下所示,带有 blob 响应和文件名。

   function openPDF(resData, fileName) {
var ieEDGE = navigator.userAgent.match(/Edge/g);
var ie = navigator.userAgent.match(/.NET/g); // IE 11+
var oldIE = navigator.userAgent.match(/MSIE/g);
var bytes = new Uint8Array(resData); //use this if data is raw bytes else directly pass resData
var blob = new window.Blob([bytes], { type: 'application/pdf' });

if (ie || oldIE || ieEDGE) {
window.navigator.msSaveBlob(blob, fileName);
}
else {
var fileURL = URL.createObjectURL(blob);
var win = window.open();
win.document.write('<iframe src="' + fileURL + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>')

}
}

关于javascript - 将 Blob 转换为文件并在浏览器中预览(不是下载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51796109/

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