2016-12-05 12 views
0

私はカメラとライブラリから写真をアップロードする非常にシンプルなアプリを持っています。私は意図どおりに動作させることができたし、何らかの理由で私には知られていなかったため、動作を停止した。私はコミットからファイルをダウンロードしました。私はそれが動作していたと確信しており、もはやそれはありません。phonegapコードでサーバにファイルをアップロードする際の問題

アプリのみましょうあなたが写真を撮って、ギャラリーからいずれかを選択し、それがその後、写真撮影した/選択の小さなサムネイル(これが機能している)を追加し、フォームを送信してみましょう。アップロードは、ファイルを選択するとすぐに行われ、フォームの送信は、添付ファイルとしてこれらのファイルを含む電子メールを送信します(サーバー上で実行されます)。

編集:私はPhoneGapのウィンドウサーバに自分のデバイスを接続することにより、アプリケーションをテストしています:

アップロード機能は、常に「コード= 1を、エラーが発生しました」を返します。

EDIT2:どうやら問題はPhoneGapのエミュレータだったが、実際のAPKインストールで試してみました、それが働きました。

CODE:

// Wait for device API libraries to load 
    // 
    document.addEventListener("deviceready", onDeviceReady, false); 
    // device APIs are available 
    // 
    function onDeviceReady() { 
     // Now safe to use device APIs 
     //alert("Device Ready"); 
     /*button that opens camera and takes picture*/ 
     $("#add_photo").click(function(){ 
      navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
      sourceType: Camera.PictureSourceType.CAMERA, 
      destinationType: Camera.DestinationType.FILE_URI }); 
     }); 

     /*on success show thumbnail and try to upload*/ 
     function onSuccess(imageURI) { 
      $("#preview").append("<img src='"+imageURI+"'/>"); 
      fileUpload(imageURI, "image/jpeg"); 
     } 

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

     function fileUpload(imageURI, mimeType){ 
     var win = function (r) { 
      console.log("Code = " + r.responseCode); 
      console.log("Response = " + r.response); 
      console.log("Sent = " + r.bytesSent); 
      $('#form_submit').prop('disabled', false); 
      $('#form_submit').prop('value', 'ENVIAR'); 
      //alert("done"); 
      //alert(r.response); 
     } 
     var fail = function (error) { 
      alert("An error has occurred: Code = " + error.code); 
      console.log("upload error source " + error.source); 
      console.log("upload error target " + error.target); 
     } 
     var options = new FileUploadOptions(); 
     options.fileKey = "file"; 
     options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1); 
     options.mimeType = mimeType; 
     var params = {}; 
     i++; 
     sent_files[i] = session_id+"-"+i+"."+imageURI.split('.').pop(); 
     params.session_id = sent_files[i]; 
     $('[name=send]').val(sent_files.join()); 
     options.params = params; 
     $('#form_submit').prop('disabled', true); 
     $('#form_submit').prop('value', 'CARGANDO'); 
     var ft = new FileTransfer(); 
     ft.upload(imageURI, encodeURI("http://myServer/folder"), win, fail, options); 
     }; 
    } 
+0

実デバイスインスタレーション代わりのPhoneGapのエミュレータを使用して、それを試し、意図したとおりにそれが働きました。 –

答えて

0

私は、実際のデバイスのインスタレーション上でそれを試してみました代わりに、PhoneGapの窓サーバーエミュレータを使用し、意図したとおりそれが働きました。

愚かな私。

関連する問題