2015-07-20 98 views
1

當我使用jQuery提交表單時發生奇怪的事情。儘管我沒有在表格中選取任何圖像,但$_FILES數組包含一個空值。如果我選擇圖像,則會有一個額外的空值。jQuery - FormData發送一個空的圖像

以前有人看過這個嗎?

Array 
(
    [item_image] => Array 
     (
      [name] => Array 
       (
        [0] => 
       ) 

      [type] => Array 
       (
        [0] => 
       ) 

      [tmp_name] => Array 
       (
        [0] => 
       ) 

      [error] => Array 
       (
        [0] => 4 
       ) 

      [size] => Array 
       (
        [0] => 0 
       ) 

     ) 

) 

AJAX

$("#fileupload").submit(function(event) 
    { 
     //disable the default form submission 
     event.preventDefault(); 

     //grab all form data 
     var formData = new FormData(this); 

     $.ajax({ 
      url: 'ajax/add-item.php', 
      data: formData, 
      type: 'POST', 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function (data) { 
       alert(data); 
       if(data) 
       { 
        $("#fileupload > div.alert").text('Upload successful.'); 
        $('html, body').animate({scrollTop : 0},700); 
        document.getElementById("#fileupload").reset(); 
       } 
      } 
     }); 

    }); 
+0

您的日誌中有任何錯誤? – Eric

+0

不...沒有錯誤。 – Ciprian

+0

[錯誤] =>陣列 ( [0] => 4,好像你有錯誤,它說UPLOAD_ERR_NO_FILE 值:4;沒有文件上傳 – Eric

回答

1

嘗試下面這個例子:

HTML/PHP

<? 
    print_r($_POST); 
    print_r($_FILES); 
?> 

<form id="data" method="post" enctype="multipart/form-data"> 
    <input type="text" name="first" value="Bob" /> 
    <input type="text" name="middle" value="James" /> 
    <input type="text" name="last" value="Smith" /> 
    <input name="image" type="file" /> 
    <button>Submit</button> 
</form> 

jQuery

$("form#data").submit(function(){ 

    var formData = new FormData($(this)[0]); 

    $.ajax({ 
     url: window.location.pathname, 
     type: 'POST', 
     data: formData, 
     async: false, 
     success: function (data) { 
      alert(data) 
     }, 
     cache: false, 
     contentType: false, 
     processData: false 
    }); 

    return false; 
}); 

祝你好運!

+0

工作。謝謝! – Ciprian