это мой код:
$uploaddir = '/temp/'; $uploadfile = $uploaddir.basename($_FILES['file']['name']); if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) send_OK(); else send_error("ERROR - uploading file");
Я попытался загрузить с ftp_fput, ftp_put, move_uploaded_file, переименовать, скопировать и все, что я могу положить в руки. ничего не работает.
Я не могу понять, в чем проблема, поскольку move_uploaded_file возвращает только true или false и код ошибки отсутствует.
Помогите??
Вы уверены, что целевой каталог имеет права на запись для world
? Т. Е. Третий номер в представлении разрешения? Файлы, загруженные php, принадлежат и попадают под группу www-data
Вы можете изменить право собственности на
[sudo] chown -R www-data folder // change owner [sudo] chown -R www-data:www-data folder // change group and owner
я не знаю, почему
но у тебя есть.
для чего нужны сообщения об ошибках.
вы видите сообщение об ошибке, когда что-то идет не так?
если нет – вам нужно проверить журналы ошибок.
добавьте эту строку вверху вашего кода
error_reporting(E_ALL);
и это, если это ваш локальный (не живой) сервер
ini_set('display_errors',1);
таким образом, вы сможете отображать ошибки на экране
для загрузки файлов вам нужно $_FILES['file']['error'])
проверить $_FILES['file']['error'])
. это не 0
, обратитесь к странице руководства для сообщения.
Я столкнулся с аналогичной проблемой при использовании файла move_uploaded_file, который не смог бы загрузить определенные файлы с кодом $ _FILES ['filename'] ['error'] 0.
Оказывается, имя файла должно быть уникальным по отношению к целевому каталогу. move_uploaded_file не знает, как обрабатывать идентичные имена файлов.
Проверяете ли вы размер файла? Одна из причин, по которой может произойти сбой, заключается в том, что вы пытаетесь загрузить файл, превышающий лимит в вашей конфигурации. Посмотрите конфигурацию var "upload_max_filesize" в php.ini и проверьте размер файла.
В дополнение к разрешениям обязательно проверьте наличие свободного места на вашем сервере. Если нет, move_uploaded_file () завершится с ошибкой 0.
Вы пытались активировать error_reporting?
Вы должны проверить свой php-config, если разрешена загрузка файлов.
Это тоже меня поймало. Быть в курсе:
move_uploaded_file () – это безопасный режим и open_basedir. Тем не менее, ограничения размещаются только на пути назначения, чтобы разрешить перемещение загруженных файлов, в которых имя файла может конфликтовать с такими ограничениями. move_uploaded_file () обеспечивает безопасность этой операции, позволяя перемещать только файлы, загруженные через PHP.
Эти настройки могут привести к сбою загрузки, если вы попытаетесь переместить файл за пределы базового каталога вашего веб-сайта, например.