2015-11-25 38 views
1

所以,我有以下形式和js/PHP:jQuery的文件上傳和Ajax

PHP

<form enctype="multipart/form-data"> 
    <input id="fileupload" type="file" name="files[]" class="files " onChange="UploadImage" accept='image/*'/> 
    <input type="button" class="submit_form" value="submit">  
</form> 

<?php 
    add_action('wp_ajax_UploadImage', 'UploadImage'); 
    function UploadImage() 
    { 
    $upload_dir = wp_upload_dir(); 
    $files = $_FILES['files']; 
    //Some function 
    } 
?> 

JS

function UploadImage(e) 
{ 
jQuery('#fileupload').fileupload({ 
    url: upload_image.ajax_url, 
}); 

if(jQuery('#fileupload')) { 
    var form = document.forms.namedItem("upload_video"); 
    var formdata = new FormData(form); 
    formdata.append('action', 'UploadImage'); 
    jQuery.ajax({   
     success : function(data){     
       alert('sddsf'); 
      } 
    }) 
} 
}; 

正如你可以從這裏看到中,當使用Blueimp jQuery File upload(其JS未正確寫入)被選擇的圖像,我要被處理的圖像文件通過php函數。

換句話說,js沒有正確寫入,我不確定如何啓動插件,然後當圖像被選中時,它由php函數通過ajax處理(意思是,我如何解析文件信息通過AJAX PHP函數?)

+0

什麼是您的具體問題?它與jQuery插件或PHP處理有關嗎?對於後者:'formdata'是否正確地發送到php文件? – Jan

+0

好吧,就是這樣。我不知道如何檢查formdata是否發送到php文件。我想問題是關於插件的js是否正確寫入,以及它是否將formdata發送到php。 –

+0

你可能想要安裝一個js控制檯(例如FF的firebug)並且首先檢查它。 – Jan

回答

1

不要直接使用$.ajax。插件已經在幕後做到了。

這是基於你的代碼工作的例子,但適合於在運行的jsfiddle:

$(document).ready(function(){ 
    var url = '/echo/json/'; 
    var formdata = {json: JSON.stringify({field1: 'value1'})}; 

    jQuery('#fileupload').fileupload({ 
     url: url, 
     formData : formdata,   
     dataType: 'json', 
     type: "POST", 
     contentType:false, 
     processData:false, 
     success : function(data){     
      alert('success...'); 
      console.dir(data); 
     } 
    });  
}); 

演示:http://jsfiddle.net/pottersky/8usb1sn3/3/

+0

實際上得到它的工作:d謝謝! –