异步读取服务器图片跟文件名,异步文件流读取示例

前提-服务器上的文件是允许跨域的或是文件与运行页面是在同一域名下的,否则会报出以下错误:

8ce5b8e47e46

跨域错误

8ce5b8e47e46

演示

请求主要函数:

function fetchAB(url, cb) {

var xhr = new XMLHttpRequest;

xhr.open('get', url, true);

xhr.responseType = 'arraybuffer';

xhr.onload = cb;

xhr.send();

};

结合js-xlsx读取xlsx文件在线示例:

function fetchAB(url, cb) {

var xhr = new XMLHttpRequest;

xhr.open('get', url, true);

xhr.responseType = 'arraybuffer';

xhr.onload = cb;

xhr.send();

};

var wb;

var url = ""

function importf() {//导入

url = document.getElementById("url").value;

if (url) {

fetchAB(url, function () {

if (this.status == 200) {

wb = XLSX.read(btoa(fixdata(this.response)), {//手动转化

type: 'base64'

});

document.getElementById("demo").innerHTML = JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]));

}

});

}

}

function fixdata(data) {

var o = "",

l = 0,

w = 10240;

for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));

o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));

return o;

}