Подтвердить что ты не робот

Php - Различия между копиями, переименованием и move_uploaded_file

Существуют ли различия, когда я использую эти функции? Почему я должен использовать один, а не другой...

4b9b3361

Ответ 1

  • copy() копирует файл - теперь у вас есть 2 файла, а для больших файлов это может занять очень много времени.
  • rename() изменяет имя файла, что может означать перемещение между каталогами.
  • move_uploaded_file() в основном совпадает с rename(), но он будет работать только с файлами, загруженными через механизм загрузки PHP. Это функция безопасности, которая мешает пользователям обманывать ваш script, чтобы показать им данные, относящиеся к безопасности.

В будущем я предлагаю самостоятельно изучить эту информацию в Руководстве по PHP.

Ответ 2

Я нашел это в руководстве move_uploaded_file():

Флориан С. в Х. ан дер Э. [.de] на 17 августа 2008 г. 09:02

move_uploaded_file (в моей настройке) всегда создает файлы 0600 (rw- --- ---) и принадлежит пользователю, работающему с веб-сервером (группа владельца AND). Несмотря на то, что каталог имеет липкий бит, установленный для групповых разрешений! Я не мог найти никаких настроек, чтобы изменить это через php.ini или даже с помощью umask().

Я хочу, чтобы мой обычный пользователь на сервере имел возможность tar cjf каталога.., который потерпит неудачу в файлах, полностью принадлежащих веб-серверу-процессу-пользователю; функция copy(from, to) подчиняется липкому биту, хотя!

поэтому кажется, что copy и rename выполняют немного другую работу.