Как загрузить фото из формы в корень сайта в папку img?

Здравствуйте! написал такой код
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['card-img']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['card-img']['tmp_name'], $uploadfile)) {
    echo "Файл не содержит ошибок и успешно загрузился на сервер.\n";
} else {
    echo "Возможная атака на сервер через загрузку файла!\n";
}

echo 'Дополнительная отладочная информация:';
print_r($_FILES);


но выдает такую ошибку
Fatal error : Uncaught TypeError: basename(): Argument #1 ($path) must be of type string, array given in /Users/mihail_razmyslovitch/Desktop/Proekty web design/project-fest/admin/news-admin.php:14 Stack trace: #0 /Users/mihail_razmyslovitch/Desktop/Proekty web design/project-fest/admin/news-admin.php(14): basename(Array) #1 {main} passed in /Users/mihail_razmyslovitch/Desktop/Proekty web design/project-fest/admin/news-admin.php on line 14


Подскажите, что не так
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Здесь все неправильно.
Первая строка - путь к папке, которой нет на вашем ПК (да и на рельном сервере такого не будет в 99,99%)
Вторая строка - не секьюрно. В идеале пользователь никак не должен влиять на выбор имени файла, под которым он сохраниться.
if move_upload_file - никаких проверок на атаку сайта не делает.

Ну и ошибка у вас в коде html формы, которая шлет данные.
Посмотрите что вы там с именем поля (card-img) input сделали. Или квадратные скобки или возможно несколько раз с одним именем написали.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Подскажите, что не так

1) Вы не читаете и не осмысливаете текст ошибки. Не в смысле глазами, а в смысле "что там произошло то?". Для вас текст ошибки проблема, а не путь решения.
2) Не проверяете то, что интерпретатор считает неправильным, что как бы прямое следствие п.1.
3) Считаете что знаете что на самом деле лежит в переменных, не заглядывая в реальные данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы