[英]How to convert Javascript array into CSV file and download it from Chrome Extension?
[英]How to download a blob file from Chrome iOS in Javascript?
我正在從 iOS 下載文件(pdf、excel、txt、png)。 iOS 沒有文件系統,這對下載來說是個問題。 我創建了一個代碼,如果需要,它會根據操作系統和導航器下載一個 blob 文件。 它在桌面(最新版本的 Chrome 和 IE)、移動 Android(Chrome、本機導航器)和 iOS iPad2 (Safari) 上運行良好。
現在,Chrome iOS 應該像 Safari mobile 一樣,但是算法不起作用,Chrome iOs 通過在新選項卡中打開來下載文件,但頁面是空的。
我創建了自己的 blob 來創建 downloadUrl。
這是下載功能的一部分。
var URL = window.URL || window.webkitURL;
var downloadUrl = URL.createObjectURL(iobBLOB);
var newWindow = null;
if (typeof a.download === 'undefined') {
var newWindow = null;
newWindow = window.open(downloadUrl, '_blank');
setTimeout(function() {
newWindow.document.title = isbFilename;
}, 10);
}
在 iPad 2 和 iPhone 4 上調試
嘗試下載 Excel、pdf、txt 和 Png 文件。
這些設備沒有文件系統。
感謝您幫助我...如果您需要更多信息,請告訴我這是我的第一個問題。
搜索后,此解決方案似乎在 ChromeiOS 和 Safari 上運行良好。 我在這篇文章“https://stackoverflow.com/questions/24485077/how-to-open-blob-url-on-chrome-ios?answertab=oldest#tab-top”上找到了它。 這解決了我的問題:
//isbContentType i.e. 'text/plain'
//isbFilename i.e. 'This is a title'
var reader = new FileReader();
reader.onload = function(e) {
var bdata = btoa(reader.result);
var datauri = 'data:' + isbContentType + ';base64,' + bdata;
window.open(datauri);
newWindow = setTimeout(function() {
newWindow.document.title = isbFilename;
}, 10);
};
reader.readAsBinaryString(iobBLOB);
我相信有一種方法可以下載 blob 文件,但事實並非如此。 不管怎么說,還是要謝謝你
var reader = new FileReader();
var out = new Blob([response.data], { type: 'application/pdf' });
reader.onload = function(e) {
window.location.href = reader.result;
}
reader.readAsDataURL(out);
// var blob = new Blob([response.data], { type: "application/pdf" });
var fileURL = URL.createObjectURL(out);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = 'lkn_' + id + '.pdf';
document.body.appendChild(a);
a.click();
我們有一個 wordpress 站點,在下載 csv 文件的回調中,我們必須為 ipad/pod/phone 特定下載添加以下內容;
if(stristr($_SERVER['HTTP_USER_AGENT'], 'ipad') OR stristr($_SERVER['HTTP_USER_AGENT'], 'iphone') OR stristr($_SERVER['HTTP_USER_AGENT'], 'ipod')) {
header("Content-Type: application/octet-stream");
} else {
header('Content-Type: application/vnd.ms-excel');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.