2013-04-17 69 views
0

試圖通過restwebservice到的base64圖像發送到服務器。問題是我沒有得到logcat的任何錯誤,並沒有打到服務器。服務器網址是正確的。我使用webapp測試了它的工作正常。但在PhoneGap的它的問題發送的base64圖像服務器中的PhoneGap

功能測試(){ 警報(imgByte);

/**imgByte is in base64 format -->pic.src = "data:image/png;base64," + imageURI; 
imgByte = pic.src;*/ 

    $.ajax({ 
     type : "POST", 
     url : IMGURL, 
     data : { 
      image : imgByte 
     }, 
     delay : 3, 
     dataType : "text", 
     cache : false, 
     error : function(xhr, ajaxOptions, thrownError) { 
      debugger; 
     }, 

     success : function(response, status, xhr) { 
      alert("haiSuccess1"); 
      response = xhr.responseText; 
      var responseArray = JSON.parse(response); 
      if (responseArray.status == "success") { 

       alert("haiSuccess"); 

      } 

     } 
    }); 
} 
+0

您是否嘗試過在瀏覽器或類似的東西紋波再現問題? –

+0

@KevinBoyle我沒有得到任何類型的解析問題..但問題是功能不會成功的狀態。我檢查了日誌貓沒有錯誤 –

+0

你能確認請求到達你的服務器嗎? – Gajotres

回答

1

因爲您使用的是Phonegap,所以跨域調用應該不成問題。

  1. 您的照片拍攝成功了,你能看到它嗎?
  2. 檢查您是在服務器端接收數據。
  3. 萬一有一個要點1.是否有問題,如果你可以發送任何REST請求到服務器
  4. 檢查是否有足夠的權限從您的移動應用

訪問互聯網這是一個我在其中一個例子中使用的工作代碼。

的Javascript:

navigator.camera.getPicture(success, fail, {quality: 45, sourceType: src}); 

function success(imageData) { 
    var url = some_location; 
    var params = {image: imageData}; 

    // send the data 
    $.post(url, params, function(data) { 
     alert('sent'); 
     // Display the selected image on send complete 
     $('#image').attr('src', 'data:image/jpeg;base64,' + params['image']);  
    }); 
} 

function fail(error) { 
    alert(error); 
} 

PHP:

<?php 
    if ($_REQUEST['image']) { 
     // convert the image data from base64 
     $imgData = base64_decode($_REQUEST['image']); 

     // rest of the code 
    } 
?> 

但我的猜測是,您收到此錯誤:錯誤414(請求URI太大)。您正試圖發送大圖片。要將此較低圖片質量修復到最低點並嘗試發送它。如果它工作正常,那麼這是你的問題。

0

它不是PhoneGap的問題。默認情況下,您的web服務器(服務器端運行的服務器端代碼),它們將傳入數據大小(不是文件大小)限制爲某個固定大小。你應該增加這個工作。