如何在cordova相机的成功回调中获取文件对象?

Sag*_*udi 7 javascript android ios cordova phonegap

目前我正在使用以下方法,它提供文件的详细信息,但不是实际的对象,它似乎是我们从javascript/jQuery中得到的.有没有人知道如何使用cordova和javascript从移动ios/android文件系统从文件URI /本机URI获取文件对象?

以下是我目前使用的代码段..

window.resolveLocalFileSystemURL(
  filepath,
  function(fileEntry) {
    fileEntry.file(
      function(file) {
        var reader = new FileReader();
        reader.onloadend = function() {
          var imgBlob = new Blob([this.result], {type: "image/jpeg"});
          var uploadedFile = imgBlob;
          uploadedFile.name = file.name;
          alert("Importing Asset from Camera.. " + uploadedFile.name);
          alert(uploadedFile.type);
          alert(uploadedFile.size);
          importAsset(uploadedFile);
        };
        reader.readAsArrayBuffer(file);
      },
      function(error) { alert("Error in fileEntry.file():" + error) })
  },
  function(error) { alert("Error in window.resolveLocalFileSystemURL():" + error) }
);
Run Code Online (Sandbox Code Playgroud)

注意:FileTransfer.upload()在我的情况下不起作用.

我在使用Append图像文件获取表格数据后使用上面的代码- Cordova/Angular在完成#SO的现有问答后

tar*_*pra -1

正如我所尝试的那样,Base64 图像上传在 iOS/Android 中都可以工作:至于 iOS,只有一种显示图像的方法是使用 base64 格式。您可以使用 cordova-camera-plugin 来生成 Base64 图像并放在 img 标签上HTML。我已经在相机插件中设置了标志以获取 jpeg、base64 格式的数据。

<img id="cardImg">
Run Code Online (Sandbox Code Playgroud)

将 Base64 图像存储在 javascript 变量中:

var imgdata=data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
Run Code Online (Sandbox Code Playgroud)

然后只需将数据传递到 HTML 的 img 标签即可:

cardImg.src=imgdata;
Run Code Online (Sandbox Code Playgroud)

完毕!