javascript - 如果我们有本地文件路径,是否可以使用 new Blob(array,options) 创建 Blob?

标签 javascript filepath filereader data-uri

比如

wx.chooseImage({
  count: 1,
  sizeType: ['compressed'],
  sourceType: ['camera'],
  success: (res)=>{
    var reader = new FileReader()
    reader.onload = ()=>{
      that.setData({
        selfie: reader.result
      })
    }
    reader.readAsDataURL(new Blob([res.tempFilePaths[0].slice(2)],{type:'image/jpeg'}))
  }
})

比方说 res.tempFilePaths[0] = wxfile://tmp_182046745o6zAJsz3uqHiNpvw66iUfDIjvPTkb31ab4e0f79bac5f21063348326464a8.jpg

遗憾的是这输出:

ZmlsZTovL3RtcF8xODIwNDY3NDVvNnpBSnN6M3VxSGlOcHZ3NjZpVWZESWp2UFRrYjMxYWI0ZTBmNzliYWM1ZjIxMDYzMzQ4MzI2NDY0YTguanBn

解码为...file://tmp_182046745o6zAJsz3uqHiNpvw66iUfDIjvPTkb31ab4e0f79bac5f21063348326464a8.jpg

最佳答案

不,那是因为 file:// 被认为是不同的来源,并且出于安全原因被浏览器阻止(想象一下,如果您可以任意指向用户磁盘上的密码文件.. )。

在问题中提供的示例中,只有保存文件名本身的字符串被烘焙到blob中(如解码时所示)。

您必须提供一种机制,例如file类型的input,以从用户系统获取blob/file对象,或者通过(本地)主机(服务器)因此可以通过 fetch() 使用 http(s)或XMLHttpRequest() .

关于javascript - 如果我们有本地文件路径,是否可以使用 new Blob(array,options) 创建 Blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45814661/

相关文章:

javascript - 从 Immutable.js Map 中删除多个嵌套键的最佳方法是什么

javascript - useRef 钩子(Hook)的行为不一致

正则表达式从路径中删除文件名

python - 操作系统错误: [Errrno 22] Invalid Argument - having problem with a username of "\robk\' in file path

java - 您可以重新排序 Spring MVC 用于确定请求内容的三种策略吗

javascript - 将上传的文件添加为 SVG 中的 <image> 元素

Java fileReader - 在 String 之后读取 int

javascript - 将 bool 数组数组减少为单个 bool 数组(Array<Array<boolean>> 到 Array<boolean>)

javascript - 简单的 Javascript 加密对于 URL 查询来说是安全的

javascript - 如何使用 Jest/Enzyme 测试 React 中文件类型输入的更改处理程序?