Нечетные разрешения для файла, модифицированного PHP move_uploaded_file () - PullRequest
8 голосов
/ 15 октября 2008

Я использую PHP 5.2.6 на Windows Server 2003 Enterprise box. IIS настроен на запрет анонимного доступа и использование встроенной проверки подлинности Windows.

Я использую PHP-скрипт для сохранения файла, загруженного из веб-формы. Файл загружается во временную папку, сценарий создает имя файла и путь в зависимости от других переменных из веб-формы, а затем сценарий использует PHP move_uploaded_file () для перемещения временного файла в конечное местоположение. Все это прекрасно работает. Короче говоря, люди загружают файлы, чтобы все в группе могли их видеть, а файлы организованы по сценарию.

Моя проблема в том, что файл в конечном местоположении имеет странные разрешения. Это не заканчивается разрешениями ни из временного местоположения, ни из конечного местоположения. Как временное местоположение, так и конечное местоположение имеют одинаковые разрешения: полные права для владельца и администраций; чтение и чтение / выполнение для 2 определенных групп безопасности AD. Окончательный файл заканчивается только: полными правами для владельца и администраций. Таким образом, хотя администраторы и исходный загрузчик не имеют проблем с просмотром файла, все остальные участники группы получают «отказано в доступе» при попытке доступа к нему.

Любые идеи или предложения будут с благодарностью! Спасибо!

Ответы [ 2 ]

7 голосов
/ 11 сентября 2009

со страницы php на move_uploaded_file (nb: у меня это сработало):

Для тех, кто использует PHP в Windows и IIS, вы ДОЛЖНЫ установить значение «upload_tmp_dir» в php.ini для некоторого каталога, где находится каталог вашего веб-сайта, создать этот каталог, а затем установить те же разрешения, которые вы установили для каталога ваших сайтов. В противном случае, когда вы загружаете файл и он попадает в C: \ WINDOWS \ Temp, то вы перемещаете его в каталог вашего сайта, его разрешения НЕ будут установлены правильно. Это создаст вам проблемы, если вы затем захотите манипулировать этим файлом с помощью утилиты конвертации ImageMagick.

4 голосов
/ 15 октября 2008

Похоже, это проблема с функцией move_uploaded_file():
http://us3.php.net/move_uploaded_file
Посмотрите на комментарии ниже, обратите внимание на комментарий Флориана о copy ().

Будет ли copy () решить проблему?:
http://us3.php.net/manual/en/function.copy.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...