Пытаюсь передать картинку через AJAX. Есть следующий код:
<input id="uploadimage" type="file" name="addImg" onchange="adderImg();" accept="image/*">
<script>
function adderImg(){
var $input = $("#uploadimage").files;
var fd = new FormData;
fd.append('img', $input);
alert(fb);//добавил для проверки
$.ajax({
url:"/parts_of_site/adderImgComment.php",
type: "POST",
processData: false, // Не обрабатываем файлы (Don't process the files)
contentType: false,
data: fd,
success:function(data){
$('#tempImg').html(data);
//Console.log(data);
}
});
</script>
Собственно вопрос не по Ajax, там все вроде понятно. Картинка не передается в переменную fd Пишет, что она не определена. При этом print_r($_FILES) на стороне сервера выдает пустой массив. Где ошибка?
UPD: Работал с кодом дальше и заметил, что ошибка еще раньше
var $input = $('#uploadimage').file;
alert($input);
Выводит underfinded То есть он даже не определяет выбранные файлы. Что делаю не так?
UPD2:
Весь косяк в строчке var $input = $('#uploadimage').file; Заменил на js-кую $input = document.getElementsByName("addImg")[0].files[0]; и все заработало. Что было не так?))) Наверняка очень простой ответ, но я понять не могу.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники