2014-08-29 7 views
1

Я использую PHP, чтобы позволить пользователю загружать файл. Файл загружается, но разрешения на файл неверны. Я установил разрешения для папки и установил флажок, который применим ко всем дочерним элементам в папке.PHP-загруженный файл имеет неправильные права доступа

Это работает только после внесения одного изменения в недавно загруженный файл. Если я не вношу изменения в разрешения, он получает этот набор по умолчанию, который нарушает остальную часть моего приложения.

Например, C:\uploads\ позволяет пользователям в группе «Все» читать и писать. Однако это не относится к недавно загруженному файлу, пока я не сделаю что-то с разрешениями этого конкретного файла (добавьте или удалите любого пользователя или группу в его разрешениях - это изменение будет перезаписано разрешениями папки).

Это на IIS6 (я считаю) на Windows Server 2003

ответ

0

Do:

chmod()

На Ваш файл после загрузки

+1

'C: \ uploads \' подразумевает окна fs. Нет chmod – Oberst

1

загрузить файл для Windows во временную директорию, а затем переместить его с разрешениями каталога temp. Если вы дадите хорошие разрешения пользователю в этой папке (upload_tmp_dir), тогда проблем не будет. Вы также можете использовать команду системы Windows: CACLS или ICACLS

+0

Блестящий! Я бы не догадался об этом за миллион лет. В моем случае пользователи загружали файлы изображений в MediaWiki, который использует PHP. Полученные разрешения для файла не включали группу безопасности Windows, которая требовалась, чтобы другие пользователи могли видеть недавно загруженные файлы. Как предложил Даймос, я добавил группу безопасности в каталог «% SystemRoot% \ Temp» и решил проблему. –