Отправка формы AJax, невозможно загрузить файл

При отправке формы 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'] не установлен. Не знаю, что делать.

Используйте enctype = 'multipart / form-data' в теге формы

AAT 13.04.2018 09:31

извините, сейчас отредактировал.

Rahul 13.04.2018 09:32

Разве ваш formData не должен быть массивом сериализации $ ("#uform") .serialize ()

Anand G 13.04.2018 09:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
43
1

Ответы 1

Использовать это:

<form method = "post" id = "uform" enctype = "multipart/form-data">

В вашем теге формы отсутствует атрибут enctype, который требуется, если ваша форма имеет тип ввода «файл».

Форма уже имеет энктип. Проверьте свой ответ, используется ли 2 enctype.

AAT 13.04.2018 09:38

Сначала он отсутствовал, поэтому подумал, что проблема

Shujaat Shaikh 13.04.2018 10:42

Другие вопросы по теме