一、文件转换
1.file(文件流、二进制流) -> base64、base64 -> file
function FileToBase64() {
var file = this.files[0];
// 获取FileReader实例
var reader = new FileReader();
// 将文件加载进入
reader.readAsDataURL(imgFile);
reader.onload = function (e) {
// 转换完成输出该文件base64编码,或者赋值给img的src
console.log(e.target.result);
}
}
atob() 方法用于解码使用 base-64 编码的字符串。
base-64 编码使用方法是 btoa() 。
function base64toFile (dataurl, filename) {
let arr = dataurl.split(',')
let mime = arr[0].match(/:(.*?);/)[1]
let suffix = mime.split('/')[1]
let bstr = atob(arr[1])
let n = bstr.length
let u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
}
let file = base64toFile('你需要转成file的base64','filename') //这个file就是base64转成的file文件
2.blob->具体文件类型(用于从服务器端获取的数据)、文件->blob(用于从文本读取文件)
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel',//转excel
//type: 'image/jpg',//转jpg图片
});
<input class="ut myHide" id="uploadFile" name="uploadFile" type="file" onchange="btnUploadFile(event)" />
function btnUploadFile(e){
var imgFile = e.target.files[0];
console.log(imgFile)
var imgBlob = URL.createObjectURL(imgFile ); //BlobUrl,作为文件的下载地址和作为图片资源地址
console.log(imgBlob)
const blob = new Blob([imgFile ]);
console.log(blob)
}
3.blob用formData进行传输
var formData = new FormData();
formData.append("file", file);
二、文件压缩
JSZip、
三、文件加密
MD5、RSA、RES:加密
npm install --save js-md5
// 然后在页面中 引入
import md5 from 'js-md5';
md5('holle') // bcecb35d0a12baad472fbe0392bcc043
md5.hex(''); // d41d8cd98f00b204e9800998ecf8427e
md5.array(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.digest(''); // [212, 29, 140, 217, 143, 0, 178, 4, 233, 128, 9, 152, 236, 248, 66, 126]
md5.arrayBuffer(''); // ArrayBuffer
md5.buffer(''); // ArrayBuffer, deprecated, This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
md5.base64('');
签名:防篡改