将图像从Photolibrary复制到文件系统 - 错误1000

时间:2016-04-19 10:08:30

标签: file cordova camera

这是我使用cordova相机插件从照片库中选择图像的功能;

$('#select').click(function() {
        navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
                                                        destinationType: Camera.DestinationType.FILE_URL, 
                                                        sourceType: Camera.PictureSourceType.PHOTOLIBRARY });
        function onSuccess(imageURI) {

            window.resolveLocalFileSystemURL(imageURI, function(entry) {
                debugger;
                fs.root.getDirectory('InsectFinder', {}, function(dirEntry) {
                    debugger;
                    dirEntry.getDirectory('FundmeldungPictures', {}, function(dirDirEntry) {
                        debugger;
                        var newFileName = fundmeldungInsectId + "_" + (images.length+1) + ".jpg";                           
                        entry.copyTo(dirDirEntry, newFileName, function(newEntry) {
                            debugger;
                            var img = {name: newFileName, id: images.length+1};
                            images = images.concat(img);
                            bilderDataSource.data(images);
                            console.log("yay");
                        }, errorHandler);
                    }, errorHandler);
                }, errorHandler);
            }, errorHandler);
        }
        function onFail(message) {
            console.error('Failed because: ' + message);
        }
    });

问题是,当我到达copyTo函数时,我收到代码1000的错误。 使用手机相机拍摄图像时,我有相同的代码,工作正常。

编辑: 这是我请求文件系统的函数。我将fs声明为全局变量,因此我可以在不同的时间访问此文件系统。

window.requestFileSystem(window.PERSISTENT, 100*1024*1024, function(filesystem) {
                console.log("opened file system: " + filesystem.name);
                fs = filesystem;

            }, errorHandler);

编辑: 当我调试copyTo函数时,我认为它在这一行失败了:

var messages = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson);
在此功能

之后,

消息未定义

在随后的错误处理中,我得到以下processMessage:

"S01 File1981269537 {"isFile":false,"isDirectory":true,"name":"FundmeldungPictures","fullPath":"\/InsectFinder\/FundmeldungPictures","filesystemName":"persistent","filesystem":1,"nativeURL":"file:\/\/\/storage\/emulated\/0\/InsectFinder\/FundmeldungPictures\/"}"

1 个答案:

答案 0 :(得分:0)

我通过返回图像的DATA_URL并将其写入文件系统中的新文件来解决此问题。