2014-04-09 3 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/Cordova 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

관련 문제