Cordova 文件插件在使用 readAsDataUrl 时出现安全错误

Posted

技术标签:

【中文标题】Cordova 文件插件在使用 readAsDataUrl 时出现安全错误【英文标题】:Cordova File Plugin giving Security error on using readAsDataUrl 【发布时间】:2018-12-01 13:45:24 【问题描述】:

我正在使用 FileChooser 从我的手机内部存储中选择一个文件,并使用 File 插件将其转换为 base64,但 this.file.readAsDataUrl 给出错误“FileErrorcode:2, Message:SECURITY_ERR"

我拥有所有必需的权限,但问题仍然存在,下面是我的代码

let base=this
  if(this.platform.is('android'))
    this.fileChooser.open()
    .then(uri => 

      var array = uri.split("/");

      var path=uri.substring(0, uri.lastIndexOf("/") + 1);

      console.log("path"+path)
      base.file.readAsDataURL(path, uri).then(dataText=>
        console.log(dataText)
        var data = dataText;

      ,(error)=>
      console.log(error)
      )
    //console.log(uri)

    )
    .catch(e => console.log(e));
  

我正在使用 Ionic 3、Angular4、Typescript、Firebase

【问题讨论】:

【参考方案1】:

我遇到了同样的错误,我想知道这些错误总是在文件 URI 以 "content://" 开头时发生。 "file:///" 一切顺利。

所以,我使用 Ionic (https://ionicframework.com/docs/native/file-path/) 的“文件路径”插件插入链接并将其转换为本地格式,该格式始终以 "file:///" 开头。

在您的情况下,您需要在获取文件打开器的 URI 后直接调用 this.filePath.resolveNativePath(path) 以“翻译”它。

【讨论】:

这是解决问题的唯一方法。

以上是关于Cordova 文件插件在使用 readAsDataUrl 时出现安全错误的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 文件插件在使用 readAsDataUrl 时出现安全错误

使用 Cordova 文件插件创建文件时返回 INVALID_MODIFICATION_ERR

在钩子文件夹中使用节点脚本时出现cordova插件安装问题

如何使用cordova插件挂钩将文件复制到/res/raw

Cordova 插件和依赖项

Cordova 后退按钮在使用自己的插件后销毁 CordovaActivity