8***@qq.com
8***@qq.com
  • 发布:2019-11-03 01:57
  • 更新:2019-11-03 02:22
  • 阅读:2127

请问web中uni.chooseVideo得到的BLOB 如何转成BASE64 ?

分类:uni-app
  uni.chooseVideo({  
      sourceType: ['camera'],  
      camera: 'front',  
      maxDuration: 10,  
      success: res => {  
        console.log(res.tempFilePath)  
        let reader = new FileReader()  
        reader.onload = (e) => {  
          var videoSrc = e.target.result  
        }  
        let rs = reader.readAsDataURL(res.tempFilePath)  
      }  
    })  
  }  

会返回 Uncaught (in promise) TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'. 错误

请问各位大大是如何在H5中 将BLOB转BASE64的

2019-11-03 01:57 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者) - 自由工作比上班赚的多

解决了 原因是: 返回的是blob:url 而不是blob资源文件。 转一下就OK了

      var xhr = new XMLHttpRequest()  
      xhr.responseType = 'blob'  
      //如果是指xhr.responseType = 'blob',将返回一个Blob对象,而不是文本;  
      //xhr.responseType = 'blob';  
      xhr.onload = () => {  
        //alert(xhr.responseText)  

        let reader = new FileReader()  
        reader.onload = (e) => {  
          console.log(e.target.result) //这里就是转好的Base64了  
        }  
        let rs = reader.readAsDataURL(xhr.response)  
      }  
      xhr.open('get', path)  
      xhr.send()

该问题目前已经被锁定, 无法添加新回复