电商网站建设好么,手机网站建设 苏州,woocommerce做零售网站,服务商公司1、base64转成file具体代码 // base64图片转file的方法#xff08;base64图片, 设置生成file的文件名#xff09;function base64ToFile(base64, fileName) {// 将base64按照 , 进行分割 将前缀 与后续内容分隔开let data base64.split(,);// 利用正则表达式 从前缀中获取图…1、base64转成file具体代码 // base64图片转file的方法base64图片, 设置生成file的文件名function base64ToFile(base64, fileName) {// 将base64按照 , 进行分割 将前缀 与后续内容分隔开let data base64.split(,);// 利用正则表达式 从前缀中获取图片的类型信息image/png、image/jpeg、image/webp等let type data[0].match(/:(.*?);/)[1];// 从图片的类型信息中 获取具体的文件格式后缀png、jpeg、webplet suffix type.split(/)[1];// 使用atob()对base64数据进行解码 结果是一个文件数据流 以字符串的格式输出const bstr window.atob(data[1]);// 获取解码结果字符串的长度let n bstr.length// 根据解码结果字符串的长度创建一个等长的整形数字数组// 但在创建时 所有元素初始值都为 0const u8arr new Uint8Array(n)// 将整形数组的每个元素填充为解码结果字符串对应位置字符的UTF-16 编码单元while (n--) {// charCodeAt()获取给定索引处字符对应的 UTF-16 代码单元u8arr[n] bstr.charCodeAt(n)}// 利用构造函数创建File文件对象// new File(bits, name, options)const file new File([u8arr], ${fileName}.${suffix}, {type: type})// 将File文件对象返回给方法的调用者return file;}// 调用方法 此时的base64是初始file转换的
const file base64ToFile(base64,base64转file生成的文件)
console.log(base64转回file的---,file);
// 将转换后获得的file文件显示在页面的img元素上
document.querySelector(#img).src window.webkitURL.createObjectURL(file)文件转换过程 2、代码解析
该方法涉及知识点较多首先因为base64的前缀信息部分与文件内容部分是通过,进行连接的data:image/***;base64(前缀信息),xxxxx(文件内容)所以利用split()方法对base64进行分割将前缀文件信息与文件内容分隔开。得到文件前缀信息后我们就可以利用string.match()方法结合正则表达式从前缀中获取到文件的类型信息image/png、image/jpeg、image/webp以及具体的格式后缀png、jpeg、webp保存这些信息在创建file文件时使用。
接下来我们要对文件内容部分进行处理借助window.atob()方法对base64文件数据进行解码获取原来的文件数据流信息但是以字符串的格式输出。然后利用new Uint8Array(length)创建一个与文件数据流字符串长度相同的8位无符号的整型数字数组通过该方法创建的整形数组所有元素初始值都为0。再通过while循环将刚才创建的整形数组中的元素按照索引替换成文件数据流字串符中对应位置上字符的 UTF-16 代码单元string.charCodeAt(index)可以获取字符串对应index位置字符的 UTF-16 代码单元值是位于0~65535之间的整数数字。
最后我们通过File(bits, name, options)构造函数传入对应的参数创建一个新的file对象后返回给方法的调用者。至此完成了base64到file文件的转换。
3、base64
一个完整的base64图片包含两部分信息的一部分是文件前缀信息一部分是表示文件内容信息例如data:image/***(表示文件的类型);base64(表示格式),xxxxx(表示文件内容)。我们在base64转换为file的过程中只需要对文件内容信息进行转换即可但转换后的file文件类型属性需要通过文件前缀信息来决定。
红线标注部分为文件前缀信息其余部分为文件内容 4、window.atob()和window.btoa()
window.btoa()方法可以将一个二进制字符串进行编码为base64编码的ASCII 字符串。我们可以使用这个方法对可能遇到通信问题的字符串进行编码处理但是有一点要注意该方法不能对中文字符进行编码处理只能对英文字母、英文符号和数字进行编码处理。 window.atob()方法可以对经过base64编码的字符串进行解码处理可以将window.btoa()编码后的数据进行还原也可以将bsae64格式的文件解码成原本的文件数据流信息。 注 window.atob()和window.btoa()兼容IE9以上浏览器。
如果想要实现对中文字符的编码和解码处理则需要结合encodeURIComponent()和decodeURIComponent()方法
编码的过程 中文字符 — 先encodeURI — 再btoa编码 解码的过程 先atob解码 — 再decodeURI — 中文字符
5、File()
File(bits, name[, options])方法是File对象的构造函数拥有两个必填参数和一个可选参数
第一个参数bits必填表示文件的内容可以是包含ArrayBufferArrayBufferViewBlob或者 DOMString 对象的 Array 以及任何这些对象的组合
第二个参数name必填表示创建的file对象的name属性也就是文件的名字。
第三个参数是options可选是一个对象格式的参数表示文件的可选属性可选属性有两条① type字符串数据表示文件的类型image/png、image/jpeg、image/webp等默认值为。 ② lastModified数值型数据表示文件最后修改时间的Unix时间戳默认值为Data.now()。
6、相关文档
前端FileReader对象实现图片file文件转base64
Base64
atob()
Uint8Array
match()
chartCodeAt()
File() 文章转载自: http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.fktlr.cn.gov.cn.fktlr.cn http://www.morning.cndxl.cn.gov.cn.cndxl.cn http://www.morning.crfjj.cn.gov.cn.crfjj.cn http://www.morning.gcqs.cn.gov.cn.gcqs.cn http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com http://www.morning.cklld.cn.gov.cn.cklld.cn http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn http://www.morning.dkzrs.cn.gov.cn.dkzrs.cn http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn http://www.morning.ksgjy.cn.gov.cn.ksgjy.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.qyqmj.cn.gov.cn.qyqmj.cn http://www.morning.gcthj.cn.gov.cn.gcthj.cn http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn http://www.morning.jbpodhb.cn.gov.cn.jbpodhb.cn http://www.morning.tpchy.cn.gov.cn.tpchy.cn http://www.morning.rykw.cn.gov.cn.rykw.cn http://www.morning.yrbqy.cn.gov.cn.yrbqy.cn http://www.morning.xlbtz.cn.gov.cn.xlbtz.cn http://www.morning.rjmg.cn.gov.cn.rjmg.cn http://www.morning.xqcst.cn.gov.cn.xqcst.cn http://www.morning.rmpkn.cn.gov.cn.rmpkn.cn http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn http://www.morning.rjmb.cn.gov.cn.rjmb.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn http://www.morning.pwdrc.cn.gov.cn.pwdrc.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.hnpkr.cn.gov.cn.hnpkr.cn http://www.morning.sqmlw.cn.gov.cn.sqmlw.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.zknxh.cn.gov.cn.zknxh.cn http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.hkshy.cn.gov.cn.hkshy.cn http://www.morning.youyouling.cn.gov.cn.youyouling.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.gqflj.cn.gov.cn.gqflj.cn http://www.morning.ptmch.com.gov.cn.ptmch.com http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn http://www.morning.ltffk.cn.gov.cn.ltffk.cn http://www.morning.rdymd.cn.gov.cn.rdymd.cn http://www.morning.xhfky.cn.gov.cn.xhfky.cn http://www.morning.rwfp.cn.gov.cn.rwfp.cn http://www.morning.psxfg.cn.gov.cn.psxfg.cn http://www.morning.lsnnc.cn.gov.cn.lsnnc.cn http://www.morning.jxltk.cn.gov.cn.jxltk.cn http://www.morning.tpqzs.cn.gov.cn.tpqzs.cn http://www.morning.nwclg.cn.gov.cn.nwclg.cn http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn http://www.morning.gbhsz.cn.gov.cn.gbhsz.cn http://www.morning.ndyrb.com.gov.cn.ndyrb.com http://www.morning.yqfdl.cn.gov.cn.yqfdl.cn http://www.morning.nwynx.cn.gov.cn.nwynx.cn http://www.morning.bmzxp.cn.gov.cn.bmzxp.cn http://www.morning.ayftwl.cn.gov.cn.ayftwl.cn http://www.morning.ttaes.cn.gov.cn.ttaes.cn http://www.morning.qzpw.cn.gov.cn.qzpw.cn http://www.morning.brbnc.cn.gov.cn.brbnc.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.krfpj.cn.gov.cn.krfpj.cn http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn