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 :: проблема с copy() и GetImageSize()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Случилась после перехода на ЧПУ
Le0_Nard
Отправлено: 20 Сентября, 2015 - 18:19:38
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Здравствуйте, дорогие форумчане. После того, как прикрутил к сайту ЧПУ, в скрипте, который заливает картинки в папку, возникла проблема, которой раньше не было (до ЧПУ все работало исправно). А именно: copy() и GetImageSize() стали отдавать разные ошибки.

copy(): The second argument to copy() function cannot be a directory
GetImageSize(): failed to open stream: No such file or directory.

Это если пути выглядят 'images/heads/' и 'images/heads/'.$data['bgimage'] соответственно. Ошибки в переменной нет, я проверял. Сколько '../' к путям я не дописывал, ничего не менялось.

Если сделать пути абсолютными ('//'.$_SERVER['HTTP_HOST'].'/images/heads/'), то обе функции отдают 'failed to.open stream: Permission denied'.

Кусок .htaccess:
PHP:
скопировать код в буфер обмена
  1. RewriteEngine on
  2. Options +FollowSymlinks
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*)$ index.php?q=$1 [QSA]


Все идет в индекс. Индекс стартует сессию, реквайрит скрипт подключений к бд и скрипт роутера. Роутер парсит запрос и, если есть право доступа, реквайрит 'modules/нужныйСкрипт'.

Кусок кода нужного скрипта:
PHP:
скопировать код в буфер обмена
  1. $data['bgimage']=$_FILES['image']['name']
  2. $directory='images/heads/';
  3. $name=$_FILES['uplphoto']['name'];
  4. $uploadfile=$directory.basename($name);
  5. copy($_FILES['image']['tmp_name'], $uploadfile);
  6. $file='images/heads/'.$data['bgimage'];
  7. $size=GetImageSize($file);
  8.  


Еще раз повторюсь: до перехода на ЧПУ все работало исправно. Адрес страницы выглядит так: example.doge/page. На нее же шлется пост-запрос. Enctype формы равен 'multipart/formdata'.

Традиционный вопрос: что делать?
 
 Top
DlTA
Отправлено: 20 Сентября, 2015 - 19:56:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а пример ссылки после введения ЧПУ?
 
 Top
Le0_Nard
Отправлено: 20 Сентября, 2015 - 22:38:57
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Было: example.doge/page.php
Стало: example.doge/page
 
 Top
broshurkaplus
Отправлено: 21 Сентября, 2015 - 10:06:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




где то пути неверно определяет относительно папок
images
/images
../images

попробуйте протестить с абсолютными путями и поймёте где ошибки
 
 Top
Le0_Nard
Отправлено: 21 Сентября, 2015 - 13:08:32
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




Абсолютные пути отдали Permission denied. Абсолютные пути, начинающиеся не с '//', а с 'http://' отдали что-то про "мы с такими не работаем". Вероятно, фигня вся в том, что после определенного количества частей в урле ломается отправная точка. Например:
Запрос example.doge/page - все пути стартуют с example.doge
Запрос example.doge/page/action - стартуют вроде как и с example.doge, но и с example.doge/page.
Запрос example.doge/page/action/do/valu e - пути стартуют с example.doge/page/action.

Когда я говорю "пути стартуют с", я имею в виду следующе: при запросе example.com/page/action/do/value, если к странице подключается, например, css (<link rel="stylesheet" href="css/styles.css">), то он будет искаться, как example.doge/page/action/css/sty les.css.

Вот такая вот фигня. И если с подключаемыми скриптами я решил проблему абсолютными путями, а с подключаемыми php решать и не приходилось (они как-то сами хорошо пляшут), то при работе с файловой системой какая-то фигня...
 
 Top
broshurkaplus
Отправлено: 21 Сентября, 2015 - 22:37:18
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




они так стартую потому что пути кривые, а именно ищет в той папке исполняемого скрипта куда подключаете. проставьте относительный путь - от места где скрипт.
я имел ввиду не буквально "абсолютные" с http://www..., а от корня.

для а ю так <link rel="stylesheet" href="/css/styles.css"> поставьте, оно же в шаблоне/index/mvc-viev те один раз подключается как я понимаю
 
 Top
Le0_Nard
Отправлено: 22 Сентября, 2015 - 00:10:04
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Март 2015  
Откуда: Минск, Беларусь


Помог: 0 раз(а)




решил проблему. всем спасибо за внимание! меньше багов вам! :3
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB