2014-04-09 183 views
0

我正在使用phonegap应用程序。我想将数据映像发送到服务器,但我无法发送它。Ajax将图像发送到服务器

function addSiteToServer() { 
    var cId = localStorage.getItem("cId"); 
    var sname = $('#sitename').val(); 
    var slat = $('#lat').val(); 
    var slng = $('#lng').val(); 
    var storedFieldId = JSON.parse(localStorage["field_id_arr"]); 
    var p = {}; 
    for (var i = 0; i < storedFieldId.length; i++) { 
     var each_field = storedFieldId[i]; 
     var val_each_field = $('#' + each_field).val(); 
     p[each_field] = val_each_field; 
     console.log("p" + p); 
    } 
    var online = navigator.onLine; 
    if (online) { 
     var data = { 
      site: { 
       collection_id: cId, 
       name: sname, 
       lat: slat, 
       lng: slng, 
       properties: p 
      } 
     }; 
     //function sending to server 
     $.ajax({ 
      url: App.URL_SITE + cId + "/sites?auth_token=" + storeToken(), 
      type: "POST", 
      data: data, 
      enctype: 'multipart/form-data', 
      crossDomain: true, 
      datatype: 'json', 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function(data) { 
       console.log("data: " + data); 
       alert("successfully."); 
      }, 
     } 

回答

1

看起来你正在使用的常规方法来发送数据/图像服务,这也是不建议的PhoneGap /科尔多瓦框架。

我请你用下面的方法,它可以作为你的预期,我还使用本地存储功能,值发送到服务器代替你的代码,

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

    var params = {}; 

    params.some_text = localStorage.getItem("some_text"); 
    params.some_id = localStorage.getItem("some_id"); 
    params.someother_id = localStorage.getItem("someother_id"); 
    options.params = params; 

    var ft = new FileTransfer(); 
    ft.upload(imageURI, encodeURI("http://example.co.uk/phonegap/receiveData.php"), win, fail, options); 
} 
function win(r) { 
    console.log("Code = " + r.responseCode+"Response = " + r.response+"Sent = " + r.bytesSent); 
} 

function fail(error) { 
    alert("An error has occurred: Code = " + error.code); 
} 
function saveData(){ 
    sendDataToServer(globalvariable.imageURI); 
    alert("Data Saved Successfully"); 
} 

希望这有助于。

+1

谢谢你的回答。但我不知道为什么FileUploadOptions没有定义。我已经安装了文件传输。 – SANSONAN

+0

我想你会错过在XML文件传输线。只需检查您的xml文件是否添加或不添加。此外,如果您对我的答案感到满意,只需通过选择刻度标记接受它。谢谢 – Vinith

相关问题