从相机获取文件后,Cordova.js的错误



我们有文件,它位于缓存中,我在控制台中看到它但是当我试图保存并发送时,我从Cordova.js

中遇到了这些错误

entry.copyto的参数" newname"的错误类型。

undurect typeError:错误类型的参数" newname" entry.copyto:预期字符串,但有数字。

成功中的错误callbackid:file1917405046:typeError:错误类型的参数" newname" entry.copyto:预期字符串,但有数字。

ngcordova已安装并注入科尔多瓦已更新而且我无法发送文件,请帮助我
这是我在控制器中的代码


$scope.attachPhoto = function() {
        $ionicActionSheet.show({
            buttons: [
                { text: '<i class="icon ion-android-image"></i>Перейти в галерею' },
                { text: '<i class="icon ion-android-camera"></i> Сделать фото' }
            ],
            cancelText: 'Cancel',
            cancel: function() {
            },
            buttonClicked: function(index) {
                var options = {
                    destinationType : Camera.DestinationType.FILE_URI,
                    sourceType : Camera.PictureSourceType.CAMERA,
                    allowEdit : false,
                    encodingType: Camera.EncodingType.JPEG,
                    popoverOptions: CameraPopoverOptions
                };
                $cordovaCamera.getPicture(options).then(function(imageData) {
                    onImageSuccess(imageData);
                    console.log(imageData);
                    function onImageSuccess(fileURI) {
                        createFileEntry(fileURI);
                        console.log(fileURI);
                    }
                    function createFileEntry(fileURI) {
                        window.resolveLocalFileSystemURL(fileURI, copyFile, fail);
                        console.log(fileURI);
                    }
                    function copyFile(fileEntry) {
                        fileEntry.file(function(file) {
                            var reader = new FileReader();
                            reader.onloadend = function(e) {
                                var imgBlob = new Blob([ this.result ], { type: "image/jpeg" } );
                                $scope.attach = true;
                                $scope.file = imgBlob;
                            };
                            reader.readAsArrayBuffer(file);
                        });
                        window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(fileSystem2) {
                            fileEntry.copyTo(
                                fileSystem2,
                                12345,
                                onCopySuccess,
                                fail
                            );
                        }, fail);
                    }
                    function onCopySuccess(entry) {
                        $scope.$apply(function () {
                            $scope.images.push(entry.nativeURL);
                            $scope.attach = true;
                            $scope.sendPhoto();
                        });
                    }
                    function fail(error) {
                        console.log("fail: " + error.code);
                    }
                }, function(err) {
                    console.log(err);
                });
                console.log(options);
                return true;
            }
        })
    };

    $scope.sendPhoto = function() {
        var data = {
            file: $scope.file
        }
        console.log(data);
        var fd = new FormData(data);
        xhr = new XMLHttpRequest();
        xhr.open("POST", "http://eatmeet.ru/serv.php");
        xhr.setRequestHeader('Content-Type', 'application/upload');
        xhr.send(fd);
    }

尝试将string作为文件名解析,而不是number。请检查文件文档。

正确的语法是: fileEntry.copyTo(parent [DirectoryEntry], newName [DOMString], successCallback [Function], errorCallback [Function]);

window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(fileSystem2) {
    fileEntry.copyTo(
        fileSystem2,
        "12345",
        onCopySuccess,
        fail
    );
}, fail);

最新更新