Вывод: сначала наладьте передачу файла в PHP, затем проверяйте его и переносите из временного каталога. Пустой массив нельзя исправить простым изменением имени конечного файла, поскольку загрузка могла не дойти до обработчика в ожидаемом формате.
Первая причина связана с формой. Для обычной загрузки через браузер требуются POST и кодирование multipart/form-data. Имя поля определяет, где искать сведения в FILES. Если отправляется несколько файлов, структура массива отличается, поэтому обработчик должен соответствовать форме. Данные файла не читают как обычную строку из_POST.
Вторая причина — серверные ограничения. Сначала смотрят код ошибки загрузки. При превышении допустимого размера запрос может обрабатываться не так, как маленький тестовый файл. Учитывайте лимит отдельного файла, размер всего POST-запроса и ограничения веб-сервера. Скрытое поле формы с максимальным размером не заменяет серверную проверку.
Третья причина касается сохранения. PHP помещает полученный файл во временное место. После успешной проверки перенесите его через move_uploaded_file() в заранее выбранный каталог. Проверяйте результат операции и не сообщайте об успехе, если запись не удалась. Если файл не сохранить в ходе обработки, временное содержимое не следует считать постоянным хранилищем.
Для фотографий не доверяйте одному расширению jpg или MIME-типу, присланному браузером. Проверяйте содержимое подходящими средствами, ограничивайте размеры изображения и создавайте имя на стороне сервера. Исходное имя пользователя не должно определять произвольный путь записи.
Хранение отдельно от кода является хорошей основой. Настройте выдачу изображений так, чтобы загруженные файлы не могли исполняться как программы, а доступ соответствовал назначению фотографий.
Лучший ответ
4.20
4.20
Php как загрузить файл?
method="post"иenctype="multipart/form-data", у файлового поля — имя.$_FILES, а не из обычного текстового поля$_POST.UPLOAD_ERR_OK.move_uploaded_file().post_max_size,upload_max_filesize. Временный файл нужно перенести до завершения запроса, если он должен сохраниться.