При отправке формы ajax вызов выполняется, но скрипт php не выполняется.
<form method = "post" id = "uform" enctype = "multipart/form-data">
Name<input type = "text" name = "name" required>
URL<input type = "file" name = "presentation" required>
<button type = "submit" value = "submit"></button>
</form>
сценарий: -
<script type = "text/javascript">
$("form#uform").submit(function(e) {
e.preventDefault();
var fd= document.getElementById('uform');
var formData = new FormData(fd);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "upload_video_process.php");
ajax.send(formData);
});
</script>
PHP:
if (isset($_POST) && !empty($_FILES['presentation']['name']))
{
//-------Code to be executed
}
else{
echo "error2";
}
Я получаю error2 в ответ, это означает, что $ _FILES ['presentation'] ['name'] не установлен. Не знаю, что делать.
извините, сейчас отредактировал.
Разве ваш formData не должен быть массивом сериализации $ ("#uform") .serialize ()






Использовать это:
<form method = "post" id = "uform" enctype = "multipart/form-data">
В вашем теге формы отсутствует атрибут enctype, который требуется, если ваша форма имеет тип ввода «файл».
Форма уже имеет энктип. Проверьте свой ответ, используется ли 2 enctype.
Сначала он отсутствовал, поэтому подумал, что проблема
Используйте enctype = 'multipart / form-data' в теге формы