Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像选择器Cordova插件不返回文件uri';s_Cordova_Ionic Framework_Ionic2 - Fatal编程技术网

图像选择器Cordova插件不返回文件uri';s

图像选择器Cordova插件不返回文件uri';s,cordova,ionic-framework,ionic2,Cordova,Ionic Framework,Ionic2,我正在使用imagepicker插件在我的ionic 2应用程序中一次选择多个图像。它显示所有图像,我们也可以设置选择图像的最大数量,但它不会返回正确的路径。它显示一些缓存路径,例如 file:///data/data/io.cordova.myapp72eec3/cache/tmp_DSC_000899887878782.jpg。 我没有创建名为io.cordova.myapp72eec3的文件夹,它是自动创建的,缓存子文件夹中甚至没有一个图像。请帮我解决这个问题。这很正常,据我所知,你可以在

我正在使用imagepicker插件在我的ionic 2应用程序中一次选择多个图像。它显示所有图像,我们也可以设置选择图像的最大数量,但它不会返回正确的路径。它显示一些缓存路径,例如
file:///data/data/io.cordova.myapp72eec3/cache/tmp_DSC_000899887878782.jpg

我没有创建名为
io.cordova.myapp72eec3
的文件夹,它是自动创建的,缓存子文件夹中甚至没有一个图像。请帮我解决这个问题。

这很正常,据我所知,你可以在IOS上使用该路径做任何你想做的事情,但在Android中不是这样,你需要将文件复制到另一个文件夹,然后通过新的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();
      });
  });
})
}
函数makeid(){
var text='';
可能的变量='ABCDEFGHIjklmnopqrstuvxyzabCDEFGHIjklmnopqrstuvxyzo123456789';
对于(变量i=0;i<5;i++){
text+=可能的.charAt(Math.floor(Math.random()*可能的.length));
}
返回文本;
};
功能存储媒体(类型){
返回$q(函数(解析、拒绝){
var选项=选项FORTYPE(类型);
$cordovaCamera.getPicture(选项)。然后(函数(imageUrl){
var name=imageUrl.substr(imageUrl.lastIndexOf('/')+1);
var namePath=imageUrl.substr(0,imageUrl.lastIndexOf('/')+1);
var newName=makeid()+name;
$cordovaFile.copyFile(名称路径、名称、cordova.file.dataDirectory、newName)
.然后(功能(信息){
FileService.storeImage(新名称);
解决();
},功能(e){
拒绝();
});
});
})
}

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

我正在使用ionic 2制作一个秘密vallet应用程序,为此,获取我选择的图像的原始路径对我来说很重要。你应该添加此信息的来源