Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Странная ошибка при загрузке изображения на сервер
Форумы портала PHP.SU » PHP » Программирование на PHP » Странная ошибка при загрузке изображения на сервер

Страниц (1): [1]
 

1. maksmib - 14 Января, 2011 - 16:49:32 - перейти к сообщению
Доброго времени суток, господа.
При попытке загрузить изображение на сарвер, получаю странную ошибку:

Warning: copy(http://site.com/imgs/test.jpg) [function.copy]: failed to open stream: HTTP wrapper does not support writeable connections in /home/domains/site.com/public_ht ml/index.php on line 217

Не хватает прав на директорию что ли ..или в чем то другом проблема может быть?
chmod говорит, что на эту директорию у меня 755

Подскажите пожалуйста. Ниндзя
2. Мелкий - 14 Января, 2011 - 17:02:55 - перейти к сообщению
Ошибка говорит о том, что вы пытаетесь файл сохранить через http, вместо файлового доступа, а таковой метод не поддерживается.
3. maksmib - 14 Января, 2011 - 17:02:59 - перейти к сообщению
ага..
у меня функция copy вторым параметром получала путь типа "http://.../imgs/..."
но через http нельзя данные сохранять ..надо указывать локальный путь
и вот тут то проблема, т.к. я использую RewriteEngine
..как же можно тогда поступить? Не понял
4. Мелкий - 14 Января, 2011 - 17:05:12 - перейти к сообщению
maksmib пишет:
и вот тут то проблема, т.к. я использую RewriteEngine

А в чём проблема? rewrite же обрабатывает http адреса, поэтому с вашей проблемой не пересекается вообще.
5. maksmib - 14 Января, 2011 - 19:01:33 - перейти к сообщению
Тогда странно ..если указать относительный путь, получаю:
Warning: copy(imgs/test.jpg) [function.copy]: failed to open stream: Permission denied in /home/domains/site.com/public_ht ml/index.php on line 217
6. OrmaJever - 14 Января, 2011 - 19:11:05 - перейти к сообщению
а путь верный? Однако
7. Мелкий - 14 Января, 2011 - 19:13:32 - перейти к сообщению
maksmib, а вот теперь всё закономерно, т.к. по вашим же словам на директорию стоят 755 права, вместо 777, которые позволят производить запись всем процессам.
8. JustUserR - 15 Января, 2011 - 19:48:05 - перейти к сообщению
maksmib пишет:
Но через http нельзя данные сохранять ..надо указывать локальный путь и вот тут то проблема, т.к. я использую RewriteEngine ..как же можно тогда поступить?
Для осуществления целевой работы с файловыми объектами необходимо использование локальных файловых путей являющихся фиксированными для заданной области расположения web-сайта и входщих в него PHP-приложений в виртуальном хосте - в то же время использование средств HTTP-сервера позволяет производить мануальную обработку ассоцированых элементов URL-путей которая не является связанной с локальными файловыми путями
9. maksmib - 17 Января, 2011 - 08:41:49 - перейти к сообщению
Мелкий пишет:
а вот теперь всё закономерно, т.к. по вашим же словам на директорию стоят 755 права, вместо 777

Капец! Ниндзя
Вы правы. И снова выражаю вам большую благодарность.
Я до последнего не верил, что не хватает прав, хоть и видел соответствующее сообщение., ведь всегда хватало для подобных операций 755
(Добавление)
JustUserR пишет:
Для осуществления целевой работы с файловыми объектами необходимо использование локальных файловых путей являющихся фиксированными для заданной области расположения web-сайта и входщих в него PHP-приложений в виртуальном хосте - в то же время использование средств HTTP-сервера позволяет производить мануальную обработку ассоцированых элементов URL-путей которая не является связанной с локальными файловыми путями


Вот этой тонкости я и не знал.
Учебники читать к сожалению совершенно некогда, поэтому приходится все решать методом научного тыка.
Еще раз спасибо всем за подсказки Улыбка
10. Мелкий - 17 Января, 2011 - 09:59:10 - перейти к сообщению
maksmib пишет:
ведь всегда хватало для подобных операций 755

Хватит и 700 (может даже и 600, не помню точно), но только если владелец директории - тот пользователь, от имени которого работает скрипт.
11. DeepVarvar - 17 Января, 2011 - 10:01:48 - перейти к сообщению
Мелкий 600 хватит ))) +1 это еще и исполнение
12. Мелкий - 17 Января, 2011 - 10:18:14 - перейти к сообщению
DeepVarvar, ага, как бы не так, проверил:
600 права - доступ запрещён
700 права - запись успешна
//права устанавливаются на директорию, владелец - www-data, от имени которого запущен апач, запись производилась через file_put_contents

Т.о. для записи в директорию, необходимо иметь право на запуск директории (так же известное как право на просмотр директории)
А абсолютный минимум прав для создания файла в директории - 300
13. DeepVarvar - 17 Января, 2011 - 10:23:54 - перейти к сообщению
Мелкий пишет:
600 права - доступ запрещён

Очень странно, я ставлю даже для разделяемой памяти 600 и все работает.
14. JustUserR - 17 Января, 2011 - 15:22:32 - перейти к сообщению
maksmib пишет:
Вот этой тонкости я и не знал
Существующее некорректное описания указанного факта является следствием описания работы web-сервера как трансляции выбранной директории виртуального хоста в облаость URL-адресов - в то время как указанное поведение не является фиксированным и обязательным
Мелкий пишет:
Т.о. для записи в директорию, необходимо иметь право на запуск директории (так же известное как право на просмотр директории)
А абсолютный минимум прав для создания файла в директории - 300
В рассматриваемых linux-подобных спецификациях огранизации файловой системы - каждая директория в действительности является специальным файлом содержащим описания соответствующих индексных дескрипторов входящих в нее элементов - при этом никакая конкретная информация связанная с файлом кроме его индексного дексриптора и локального имени не хранится в описании директории А так как для осуществления записи в некоторый файл достаточно искючиельно права на запись в него - то для создания и удаления файловых объектов в целевом каталоге достаточно исключительного права на запись Возможно обычные консольные команды не позволяют производиться требуемые действия в заданном урвоне привелегий - однако интерфейс системных вызовов предоставляет такую возможность

 

Powered by ExBB FM 1.0 RC1