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
