2016-07-19 19 views
0

我有以下Ajax方法,我使用它將請求的數據(發送郵件)發送到服務器端。我還必須將2個附加文件發送到服務器端。任何人都可以幫助我如何做到這一點?我需要在這個文件中進行上傳,我沒有任何其他服務器端的PHP腳本,只是在這個文件中的一些功能來處理數據。這種環境只有在wordpress中才有,不僅是平面ajax。另一個話題不回答這個問題。如何在Worldpress環境中使用Ajax將附件發送到服務器端

的代碼片段:

  jQuery('#carrieremailsend').click(function(){ 
       var career_id = jQuery('#carrierid').val(); 
       var careertittle = jQuery('#carriertittle').val(); 
       var name = jQuery('#name').val(); 
       var email = jQuery('#mail').val(); 
       var message = jQuery('#message').val(); 

       var data = { 
       action: 'send_carrier_email', 
       career: career_id, 
       name: name, 
       email: email, 
       message: message 
       } 

誰能幫助我該怎麼辦呢? 謝謝!

我一直在尋找的answhere如下:

var fd = new FormData(); 
var cv = jQuery(document).find('#cv'); 
var lm = jQuery(document).find('#lm'); 

var individual_file = cv[0].files[0]; 
var lm_file = lm[0].files[0]; 
fd.append("career",career_id); 
fd.append("name",name); 
fd.append("email",email); 
fd.append("message",message); 
fd.append("cv", individual_file); 
fd.append("lm", lm_file); 
fd.append('action', 'fiu_upload_file'); 

此代碼還postr其他數據的服務器端。如果你想存儲在服務器上,這些附加的文件,你還必須實現在服務器端的followinf PHP代碼(這是絲毫2個獨立的文件):

move_uploaded_file($_FILES["cv"]["tmp_name"],WP_CONTENT_DIR .'/uploads/CV/'.basename($_FILES['cv']['name'])); 
move_uploaded_file($_FILES["lm"]["tmp_name"],WP_CONTENT_DIR .'/uploads/lm/'.basename($_FILES['lm']['name'])); 
+0

以防止請求錯誤和misfunction最好的辦法是使用** ** FORMDATA JavaScript對象來獲取整個窗體(INS tead你的__data__對象) –

+0

如果我使用formData而不是數據對象,那麼服務器端將以與使用數據對象相同的方式獲取數據。如果是的話我怎麼能從我的對象轉換成formData一個? – Stonesmit

+0

是否可以在同一個Ajax方法中擁有一個表單和一個dataForm? – Stonesmit

回答

0

做這樣的

$(document).ready(function (e) { 
    $('#your_form_id').on('submit', (function (e) { 
     e.preventDefault(); 
     $.ajax({ 
      url: 'send_carrier_email', 
      type: 'POST', 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData: false, 
      dataType: 'json', 
      success: function (data) 
      {  
       if(data.isSuccess){ 
        alert("data submitted."); 
       } 

      } 
     }); 
    })); 
}); 
東西

雖然在服務器端

print_r($_POST); 
print_r($_FILES); 
// do your code here 
// . 
// . 
echo json_encode(array('isSuccess'=>True)); 
die; 
相關問題