0

我需要在我的 ApGyver 类固醇应用程序中显示捕获的图像。我捕获图像,然后尝试在我的图像中设置 src。但它给了我不允许本地资源的错误:

我以这种方式捕获图像:

            var options = {
                quality: 50,
                targetWidth: 300,
                targetHeight: 300,
                destinationType: Camera.DestinationType.FILE_URI,
                sourceType: Camera.PictureSourceType.CAMERA, // Camera.PictureSourceType.PHOTOLIBRARY
                allowEdit: false,
                encodingType: Camera.EncodingType.JPEG,
                popoverOptions: CameraPopoverOptions,
                saveToPhotoAlbum: true,
                limit: 1
            };
            // capture callback
            var captureSuccess = function(mediaFiles) {
                var i, path, len;
                console.log(mediaFiles);
                for (i = 0, len = mediaFiles.length; i < len; i += 1) {
                    path = mediaFiles[i].localURL;
                    // do something interesting with the file
                }
                if (switched) {
                    $scope.post.media = []
                }
                $scope.post.media.length = 1;
                $scope.post.fileUrl = path;
                setActionType('image');
                $scope.isBusy = false;
                console.log('hello' + path);
            };

            // capture error callback
            var captureError = function(error) {
                navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
            };

            // start image capture
            navigator.device.capture.captureImage(captureSuccess, captureError, options);
4

1 回答 1

1

尝试此代码以捕获和上传图像。并在您的 index.html 链接 cordova.js 中添加相机插件 ok。还有任何问题给我留言。

function capturePhoto() {
         navigator.camera.getPicture(uploadPhoto, onFail, {
         quality: 50, 
         // allowEdit: true,
         correctOrientation: true,
         destinationType: Camera.DestinationType.FILE_URL,
         // destinationType: Camera.DestinationType.DATA_URL
         sourceType: Camera.PictureSourceType.CAMERA
     });
    }

    function onFail(message) {
    // alert('Failed because: ' + message);
    }

    function uploadPhoto(imageURI){
    console.log(imageURI);

    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";

    var ft = new FileTransfer();
    ft.upload(imageURI, encodeURI("http://XYZ/uploadimg?user_id="+UserId+""),  winGallary, fail, options);
    console.log(ft.upload);
    }

    function winGallary(rGallary) {
        console.log("Code = " + rGallary.responseCode);
        console.log("Response = " + rGallary.response);
        console.log("Sent = " + rGallary.bytesSent);

    }

    function fail(error) {
    console.log("upload error source " + error.source);
    console.log("upload error target " + error.target);
    }
于 2015-10-21T07:27:18.873 回答