您当前的位置: 首页 > 

【03】

暂无认证

  • 0浏览

    0关注

    196博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

js常用文件操作

【03】 发布时间:2020-07-17 09:49:07 ,浏览量:0

计算base64文件大小 单位b
  // 计算base64文件大小 单位b
  function calculatedSize (base64) {
    var tag = 'base64'
    var baseStr = base64.substring(base64.indexOf(tag) + tag.length)
    var eqTagIndex = baseStr.indexOf('=')
    baseStr = eqTagIndex !== -1 ? baseStr.substring(0, eqTagIndex) : baseStr
    var strLen = baseStr.length
    return strLen - (strLen / 8) * 2
  }
base64转换file
// base64转换file
function base64ToFile (dataUrl, filename) {
  if (!filename) filename = 'file'
  var arr = dataUrl.split(',')
  var mime = arr[0].match(/:(.*?);/)[1]
  var suffix = mime.split('/')[1]
  var bstr = atob(arr[1])
  var n = bstr.length
  var u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new File([u8arr], filename + '.' + suffix, {type: mime})
}
base64转blob
// base64转blob
function base64ToBlob (base64, callback) {
  var base64Arr = base64.split(',')
  var imgtype = ''
  var base64String = ''
  if (base64Arr.length > 1) {
    base64String = base64Arr[1]
    imgtype = base64Arr[0].substring(base64Arr[0].indexOf(':') + 1, base64Arr[0].indexOf(';'))
  }
  var bytes = atob(base64String)
  var bytesCode = new ArrayBuffer(bytes.length)
  var byteArray = new Uint8Array(bytesCode)
  for (var i = 0; i < bytes.length; i++) {
    byteArray[i] = bytes.charCodeAt(i)
  }
  callback(new Blob([bytesCode], {type: imgtype}))
}
file转base64
// file转base64
function fileToBase64 (file, callback) {
  var reader = new FileReader()
  reader.readAsDataURL(file)
  reader.onload = function (e) {
    callback(this.result)
  }
}
  • blob与file同处理
关注
打赏
1657344724
查看更多评论
立即登录/注册

微信扫码登录

0.0400s