Почему я не могу загрузить файлы с помощью chmod () в PHP? - PullRequest
0 голосов
/ 08 января 2012

Я хочу загрузить изображение на удаленный хост (локально все в порядке).

Я использовал приведенный ниже код, как и мои предыдущие проекты:

if (move_uploaded_file($_FILES["scan"]["tmp_name"], 'images/scans/1.jpg')) {
   chmod ('images/scans/1.jpg','0644');
}

Но каждый раз, когда я запускаю этот код в интернете, я получаю сообщение об ошибке:

Предупреждение: move_uploaded_file (images / profile / Mordent.jpg) [function.move-uploaded-file]: Не удалось открыть поток: в доступе отказано ...

Мне нужно изменить разрешение каталога scans на 0777 , а затем я могу загружать изображения. В противном случае я не могу. Это очень странно для меня. Я использовал этот код много раз в разных проектах, и у меня не было никаких проблем с ним.

Ответы [ 2 ]

2 голосов
/ 08 января 2012

images/scans/ должен быть доступен для записи пользователю веб-сервера и не должен быть 0777, который доступен для записи во всем мире. Во-первых, images должен быть доступен для чтения пользователю веб-сервера с 5 в последней позиции (например, 0755). Каталог scans должен принадлежать пользователю веб-сервера или доступен для записи. Желательно, чтобы он принадлежал пользователю веб-сервера, где его разрешения также могут быть 0755.

0 голосов
/ 08 января 2012

Согласно php.net :

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

...