2016-05-03 161 views
1

我想通過ajax和php做文件上傳。 PHP在直接調用時工作正常,但每次我通過ajax調用它都會失敗。我沒有收到任何錯誤(令人討厭),它只是不想上傳。PHP ajax上傳圖片

我JQUERY看起來像

$('.fileUpload').on('click', function(){ 
     var file_data = $('#medical').prop('files')[0]; 
     console.log(file_data); 
      var form_data = new FormData();     
      form_data.file = file_data; 
      console.log(form_data); 
      var fileType = $(this).parent().find('input[type="hidden"]').val() 
      console.log(fileType);      
      $.ajax({ 
         url: '/docs/upload.php', // point to server-side PHP script 
         dataType: 'text', // what to expect back from the PHP script, if anything 
         cache: false, 
         fileType:fileType, 
         contentType: false, 
         processData: false, 
         data: form_data,       
         type: 'post', 
         success: function(data){ 
          $('.message').html(data) // display response from the PHP script, if any 
         } 
      }); 
    }); 

和我的PHP看起來像

$file_upload="true"; 
$file_up_size=$_FILES['file_up'][size]; 
print_r($_FILES[file_up]); 
if ($_FILES[file_up][size]>250000){$msg=$msg."Your uploaded file size is more than 250KB 
so please reduce the file size and then upload.<BR>"; 
$file_upload="false";} 

$file_name=$_FILES[file_up][name]; 
$add="medicalPaperwork/$file_name"; // the path with the file name where the file will be stored 

if($file_upload=="true"){ 

if(move_uploaded_file ($_FILES[file_up][tmp_name], $add)){ 
echo "Thank god!"; 
}else{echo "Fuck you.";} 

}else{ 
echo $msg; 
} 

我在做什麼錯?試圖弄清楚這件事我瘋了。

編輯:form_data enter image description here

+0

你得到什麼輸出中的字段的內容? –

+0

none,我只是在move_uploaded_file if語句中找到else。沒有錯誤或反饋 – zazvorniki

+0

你能否將'print_r($ _ FILES [file_up])'更改爲'print_r($ _ FILES ['file_up'])',因爲我沒有在任何地方看到'file_up'。或甚至更好,只是做'print_r($ _ FILES)' –

回答

0

您使用FORMDATA不當,使用append設置要上傳

$('.fileUpload').on('click', function(){ 
    var file_data = $('#medical').prop('files')[0]; 
    console.log(file_data); 
    var form_data = new FormData();     
    var fileType = $(this).parent().find('input[type="hidden"]').val() 
    form_data.append('file_up', file_data); 
    form_data.append('fileType', fileType); 
    console.log(form_data); 
    console.log(fileType);      
    $.ajax({ 
       url: '/docs/upload.php', // point to server-side PHP script 
       dataType: 'text', // what to expect back from the PHP script, if anything 
       cache: false, 
       contentType: false, 
       processData: false, 
       data: form_data,       
       type: 'post', 
       success: function(data){ 
        $('.message').html(data) // display response from the PHP script, if any 
       } 
    }); 
}); 
+0

我試過這個。當改變時,它甚至不會到達其他地方。 – zazvorniki