1.利用slice和fileReader实现一个大文件切割的测试,思路为对input type="file"的onchange中获得的files[0]文件,按照chunkSize大小,对其进行切分采用files[0].slice(start,end),且在切分过程中通过每次实例化一个FileReader对象,并通过监听onLoad事件,并在onLoad后去获取其对应的result,结果报错。2.`<!Doctype><html><head><title>This is a test about file</title></head><body><input type="file" id="myfile" name="myfile" onchange="dealup()"/><button onclick="showresult()">Show result</button></body><script>const chunkSize = 10;var myresult = new Array();function dealup() { var file =document.getElementById("myfile").files[0]; var chunks = Math.ceil(file.size/chunkSize); var filder = new Array(chunks); var start = 0,end = 0; console.log("文件总尺寸"+file.size); for(let curindex = 0; curindex < chunks;curindex++) { var tempcell = { data: "", n: 0 }; if(file.size-start <= chunkSize) { end = file.size; }else { end = start + chunkSize; } console.log("本次切割范围:"+start + " " + end); tempcell.n = curindex; filder[curindex] = new FileReader(); filder[curindex].readAsText(file.slice(start,end)); filder[curindex].onload = function() { console.log(curindex + "# ") tempcell.data = filder[curindex].result; myresult.push(tempcell) } start = end; curindex++; }}function showresult() { console.log(myresult);}</script></html>`3.结果报错:
添加回答
举报
0/150
提交
取消