文件转换、文件压缩、文件加密

一、文件转换

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(''); 

签名:防篡改

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值