0

したがって、phonegap2.2.0で非常に奇妙な問題に遭遇したようです。

写真を撮って、次のようにファイル転送プラグインを介して送信しようとしています。

if(navigator.camera) {
        navigator.camera.getPicture(function(imageURI){
            console.log('captured image = '+imageURI);
            $('#photoConfirmation .image-preview').attr('src', imageURI);
            self.photoURI = imageURI;
            $('#photoConfirmation').show().simpledialog2({
                'mode' : 'bool',
                'prompt' : '',
                'useModal': true,
                'zindex':1001,                    
                'callbackClose': function(e){
                    $('#photoConfirmation').hide();
                }
            });
        }, 
        function(message){
            alert('Failed to get picture: ' + message);
        }, {
            sourceType:1, 
            quality: 50, 
            destinationType:1
        });
    } else {
        alert('Camera is not supported on this device.');
    }    

 var options = new FileUploadOptions();
    options.fileKey="files[]";
    options.fileName = 'image_something'.jpg';
    options.mimeType="image/jpeg";
    options.chunkedMode = false;

    var params = new Object();
    params.extraData= 'object-' + anObject.id;

    options.params = params;
    var ft = new FileTransfer();
    ft.upload(imageURI, "http://someupload.com/destination/url", function(r){alert('Finished upload!');}, function(error){console.log(error);alert('Error uploading image with code: ' +error.code)}, options);

問題は、これはプレビューに表示されますが、アップロードされないことです。画像プレビューで見るので、写真は間違いなくキャプチャされています...私は以前にこのようなことをしたと誓うことができました。私がここで間違っていることを誰かが見ていますか?

4

1 に答える 1

0

Cordova API ドキュメントには、FileTransfer プラグイン (カメラからキャプチャされた写真を使用する) の参照実装があり、実装には多くの違いがあります。コードを読むと、写真をキャプチャする (そして imageURI を作成する) 前にファイル転送を開始しているように見えます。sourceTypeまた、とに数値定数を使用していdestinationTypeます。これらは発生している問題の原因ではない可能性が最も高いですが、これらの正しい形式は次のとおりです。

destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY

これは、動作するバージョンのいくつかの小さなタイプミスを修正した例です ('ファイル名の余分なものはコードの一部ではないと想定しています)。

if (navigator.camera) {
  navigator.camera.getPicture(

  function (imageURI) {
    console.log('captured image = ' + imageURI);
    $('#photoConfirmation .image-preview').attr('src', imageURI);
    self.photoURI = imageURI;
    $('#photoConfirmation').show().simpledialog2({
      'mode': 'bool',
      'prompt': '',
      'useModal': true,
      'zindex': 1001,
      'callbackClose': function (e) {
        $('#photoConfirmation').hide();
        var options = new FileUploadOptions();
        options.fileKey = "files[]";
        options.fileName = 'image_something.jpg';
        options.mimeType = "image/jpeg";
        options.chunkedMode = false;
        var params = new Object();
        params.extraData = 'object - ' + anObject.id;
        options.params = params;
        var ft = new FileTransfer();
        ft.upload(imageURI, "http://someupload.com/destination/url", function (r) {
          alert('Finished upload!');
        }, function (error) {
          console.log(error);
          alert('Error uploading image with code: ' + error.code)
        }, options);
      }
    });
  },

  function (message) {
    alert('Failed to get picture: ' + message);
  }, {
    sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
    quality: 50,
    destinationType: navigator.camera.DestinationType.FILE_URI
  });
} else {
  alert('Camera is not supported on this device.');
}
于 2013-01-02T21:45:55.897 に答える