Загрузка файла PHP в Ajax с использованием onchange

function chkFile(file1) { var file = file1.files[0]; var formData = new FormData(); formData.append('formData', file); $.ajax({ type: "POST", url: "chkFileType.php", contentType: false, processData: false, data: formData, success: function (data) { alert(data); } }); } <form action="" method="post" name="myForm" id="myForm" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Upload Files <input type="file" name="uploadFile" id="uploadFile" onChange="chkFile(this)"/> <input type="submit" name="submitbutt" value="Checkout"> 

chkFileType.php

 <?php print_r($_FILE) ?> 

Я хочу создать форму, которая, когда пользователь загрузит файл, выполнит проверку загруженного файла перед отправкой всей формы. Я использую onChange когда файл загружается, а затем передает значение formData в Ajax, чтобы вызвать my chkFileType.php чтобы выполнить проверки и предупредить ответ.

Функция работает без каких-либо ошибок, но не реагирует на alert(data) ;

Я знаю, что делаю что-то неправильно, но не знаю, с какого направления идти. Правильно ли я делаю?

Все выглядит хорошо. Вы сделали правильно. Но чтобы получить какой-либо ответ от вызова ajax, вам нужно напечатать требуемый материал в chkFileType.php .

Подобно,

 if($ext =="jpg" || $ext == "png"){ echo "Image"; // data in alert will alert as Image } else if(check for txt file){ echo "Text File"; // data in alert will alert as Text File } else if(chck for pdf) { echo "Pdf";// data in alert will alert as Pdf } 

EDIT измените это

 var formData = new FormData( $("#formID")[0] ); 

Надеюсь, ты понимаешь, что я хотел сказать.