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] );
Надеюсь, ты понимаешь, что я хотел сказать.