2014-04-09 2 views
0

Я работаю с телефоном. Я хочу отправить изображение данных на сервер, но я не могу его отправить.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/Кордова Framework.

Я прошу вас заменить код следующего способом, который работает, как вы ожидали, я также использовал и локальное хранение для отправки значений на сервер,

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

Смежные вопросы