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