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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Странная ошибка при загрузке изображения на сервер
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Доброго времени суток, господа.
При попытке загрузить изображение на сарвер, получаю странную ошибку:
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
Подскажите пожалуйста.
Мелкий
Отправлено: 14 Января, 2011 - 17:02:55
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Ошибка говорит о том, что вы пытаетесь файл сохранить через http, вместо файлового доступа, а таковой метод не поддерживается.
----- PostgreSQL DBA
maksmib
Отправлено: 14 Января, 2011 - 17:02:59
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
ага..
у меня функция copy вторым параметром получала путь типа "http://.../imgs/..."
но через http нельзя данные сохранять ..надо указывать локальный путь
и вот тут то проблема, т.к. я использую RewriteEngine
..как же можно тогда поступить?
Мелкий
Отправлено: 14 Января, 2011 - 17:05:12
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
maksmib пишет:
и вот тут то проблема, т.к. я использую RewriteEngine
А в чём проблема? rewrite же обрабатывает http адреса, поэтому с вашей проблемой не пересекается вообще.
----- PostgreSQL DBA
maksmib
Отправлено: 14 Января, 2011 - 19:01:33
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Тогда странно ..если указать относительный путь, получаю:
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
OrmaJever
Отправлено: 14 Января, 2011 - 19:11:05
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
а путь верный?
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Мелкий
Отправлено: 14 Января, 2011 - 19:13:32
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
maksmib, а вот теперь всё закономерно, т.к. по вашим же словам на директорию стоят 755 права, вместо 777, которые позволят производить запись всем процессам.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
maksmib пишет:
Но через http нельзя данные сохранять ..надо указывать локальный путь и вот тут то проблема, т.к. я использую RewriteEngine ..как же можно тогда поступить?
Для осуществления целевой работы с файловыми объектами необходимо использование локальных файловых путей являющихся фиксированными для заданной области расположения web-сайта и входщих в него PHP-приложений в виртуальном хосте - в то же время использование средств HTTP-сервера позволяет производить мануальную обработку ассоцированых элементов URL-путей которая не является связанной с локальными файловыми путями
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
maksmib
Отправлено: 17 Января, 2011 - 08:41:49
Гость
Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Мелкий пишет:
а вот теперь всё закономерно, т.к. по вашим же словам на директорию стоят 755 права, вместо 777
Капец!
Вы правы. И снова выражаю вам большую благодарность.
Я до последнего не верил, что не хватает прав, хоть и видел соответствующее сообщение., ведь всегда хватало для подобных операций 755 (Добавление)
JustUserR пишет:
Для осуществления целевой работы с файловыми объектами необходимо использование локальных файловых путей являющихся фиксированными для заданной области расположения web-сайта и входщих в него PHP-приложений в виртуальном хосте - в то же время использование средств HTTP-сервера позволяет производить мануальную обработку ассоцированых элементов URL-путей которая не является связанной с локальными файловыми путями
Вот этой тонкости я и не знал.
Учебники читать к сожалению совершенно некогда, поэтому приходится все решать методом научного тыка.
Еще раз спасибо всем за подсказки
Мелкий
Отправлено: 17 Января, 2011 - 09:59:10
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
maksmib пишет:
ведь всегда хватало для подобных операций 755
Хватит и 700 (может даже и 600, не помню точно), но только если владелец директории - тот пользователь, от имени которого работает скрипт.
----- PostgreSQL DBA
DeepVarvar
Отправлено: 17 Января, 2011 - 10:01:48
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
DeepVarvar, ага, как бы не так, проверил:
600 права - доступ запрещён
700 права - запись успешна
//права устанавливаются на директорию, владелец - www-data, от имени которого запущен апач, запись производилась через file_put_contents
Т.о. для записи в директорию, необходимо иметь право на запуск директории (так же известное как право на просмотр директории)
А абсолютный минимум прав для создания файла в директории - 300
----- PostgreSQL DBA
DeepVarvar
Отправлено: 17 Января, 2011 - 10:23:54
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Мелкий пишет:
600 права - доступ запрещён
Очень странно, я ставлю даже для разделяемой памяти 600 и все работает.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
maksmib пишет:
Вот этой тонкости я и не знал
Существующее некорректное описания указанного факта является следствием описания работы web-сервера как трансляции выбранной директории виртуального хоста в облаость URL-адресов - в то время как указанное поведение не является фиксированным и обязательным
Мелкий пишет:
Т.о. для записи в директорию, необходимо иметь право на запуск директории (так же известное как право на просмотр директории)
А абсолютный минимум прав для создания файла в директории - 300
В рассматриваемых linux-подобных спецификациях огранизации файловой системы - каждая директория в действительности является специальным файлом содержащим описания соответствующих индексных дескрипторов входящих в нее элементов - при этом никакая конкретная информация связанная с файлом кроме его индексного дексриптора и локального имени не хранится в описании директории А так как для осуществления записи в некоторый файл достаточно искючиельно права на запись в него - то для создания и удаления файловых объектов в целевом каталоге достаточно исключительного права на запись Возможно обычные консольные команды не позволяют производиться требуемые действия в заданном урвоне привелегий - однако интерфейс системных вызовов предоставляет такую возможность
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.