Я запускаю PHP 5.2.6 на Windows Server 2003 Enterprise. IIS настроен на запрет анонимного доступа и использование встроенной проверки подлинности Windows.
Я использую сценарий PHP для сохранения файла, загруженного из веб-формы. Файл загружается во временную папку, сценарий создает имя файла и путь в зависимости от других переменных из веб-формы, а затем сценарий использует PHP move_uploaded_file () для перемещения временного файла в окончательное расположение. Все это работает нормально. Короче говоря, люди загружают файлы, чтобы все в группе могли их видеть, а файлы упорядочиваются сценарием.
Моя проблема в том, что файл в последнем месте имеет странные разрешения. Это не заканчивается разрешениями ни из временного, ни из последнего местоположения. И временное, и конечное местоположение имеют одинаковые разрешения: полные права для владельца и администраций; читать и читать / выполнять для 2 конкретных групп безопасности AD. Окончательный файл имеет только: полные права для владельца и администраций. Таким образом, хотя администраторы и первоначальный загрузчик не имеют проблем с просмотром файла, все остальные в группе получают «доступ запрещен» при попытке доступа к нему.
Будем очень признательны за любые идеи или предложения! Спасибо!






Похоже, это проблема с функцией move_uploaded_file():
http://us3.php.net/move_uploaded_file
Взгляните на комментарии ниже, обратите внимание на комментарий Флориана о copy ().
Может ли copy () решить проблему?:
http://us3.php.net/manual/en/function.copy.php
Было бы разумно проверить, что is_uploaded_file () возвращает true для временного файла, если вы используете copy (), поскольку move_uploaded_file () реализует эту проверку.
со страницы php на move_uploaded_file (nb: это сработало для меня):
Для тех, кто использует PHP в Windows и IIS, вы ДОЛЖНЫ установить значение "upload_tmp_dir" в php.ini в какой-либо каталог, где находится каталог ваших веб-сайтов, создать этот каталог, а затем установить для него те же разрешения, которые вы установили для своих веб-сайтов. каталог. В противном случае, когда вы загружаете файл, и он попадает в C: \ WINDOWS \ Temp, а затем вы перемещаете его в каталог своего веб-сайта, его разрешения не будут установлены правильно. Это вызовет у вас проблемы, если вы затем захотите манипулировать этим файлом с помощью чего-то вроде утилиты преобразования ImageMagick.
Продолжайте биться об этом в течение часа ...
Нет проблем, рад, что смог помочь.