Image Picker Cordova插件不会返回文件uri

时间:2016-09-20 13:15:14

标签: cordova ionic-framework ionic2

我使用 imagepicker 插件在我的离子2应用中一次选择多个图片。它显示所有图像,我们也可以设置最大数量的选择图像,但它不会返回正确的路径。它显示了一些缓存路径,例如 file:///data/data/io.cordova.myapp72eec3/cache/tmp_DSC_000899887878782.jpg。 我没有创建名为io.cordova.myapp72eec3的文件夹,它会自动创建,并且在其缓存子文件夹中甚至没有单个图像。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:-1)

这是正常的,据我所知,你可以在IOS上使用该路径做任何你喜欢的事情,但事实并非如此,你需要将文件复制到另一个文件夹,然后通过新的URL访问它。以下是示例代码:

function makeid() {
var text = '';
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

for (var i = 0; i < 5; i++) {
  text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
};

function saveMedia(type) {
return $q(function(resolve, reject) {
  var options = optionsForType(type);

  $cordovaCamera.getPicture(options).then(function(imageUrl) {
    var name = imageUrl.substr(imageUrl.lastIndexOf('/') + 1);
    var namePath = imageUrl.substr(0, imageUrl.lastIndexOf('/') + 1);
    var newName = makeid() + name;
    $cordovaFile.copyFile(namePath, name, cordova.file.dataDirectory, newName)
      .then(function(info) {
        FileService.storeImage(newName);
        resolve();
      }, function(e) {
        reject();
      });
  });
})
}

您还需要cordovafile插件来复制文件。您可以找到可以指导您的教程here