var reader = new FileReader();//使用FileReader對象,來進行異步文件的讀取,是input:file的絕配
//將文件以二進制形式讀入頁面
reader.readAsArrayBuffer(localFile);
// reader.readAsBinaryString(localFile);
reader.onload = function (f) {
// ArrayBuffer存儲二進制數據,但只有通過類型化數組才能進行二進制數據的讀寫
// 一段ArrayBuffer上可以重疊多個不同的類型化數組,不同類型化數組影響對ArrayBuffer中數據的讀寫方式
const buffer = this.result;
// arraybuffer類型
let bb = new Uint8Array(buffer); // 8位無符號整型數組
let arr = [];
for(let i = 0; i < bb.length;i++) {
arr[i] = bb[i];
}
code = CRC.ToCRC16(arr, false); // 數組解析CRC碼
code = parseInt(code, 16);
console.log("bb-code--",code);
}
// 讀取完成觸發 ajax上傳
reader.onloadend = function () {
// 文件名稱字符串拼接
const nameStr = size + '-' + code + '-' + name;
// console.log("文件讀取完成--", nameStr);
var file_old = $("#file")[0].files[0];
console.log("nameStr--",nameStr);
switch (obj_fileType) {
case "0": //主模塊
const file = new File([file_old],nameStr)
formData.append("file", file);
break;
case "1": //擴展模塊
var fileName = obj_fileAddr + "/" + size + "-" + code + "-" + obj_file.files[0].name;
file_old = new File([file_old], fileName);
formData.append("file", file_old);
break;
default:
formData.append("file", file_old);
break;
}
// CRC碼 轉換方法
// https://www.cnblogs.com/oukunqing/p/5820596.html
https://www.cnblogs.com/hhhyaaon/p/5933647.html
