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 :: Denwer & OpenServer не передают файл.

 PHP.SU

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


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

> Без описания
DobrijUser
Отправлено: 20 Февраля, 2013 - 04:33:16
Post Id


Новичок


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


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




Доброго времени суток.
Ситуация следующая: курлом в пост-запросе передаю файл.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $url='somesite';
  4. $file='./text.txt';
  5. $array=array('var1'=>'1','var2'=>'2','var3'=>'3' ... 'file'=>'@'.$file);
  6.  
  7. $get_list=curl_init();
  8. curl_setopt($get_list, CURLOPT_URL, $url);
  9. curl_setopt($get_list, CURLOPT_HEADER, 0);
  10. curl_setopt($get_list, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($get_list, CURLOPT_FOLLOWLOCATION, 1);
  12. curl_setopt($get_list, CURLOPT_POST,true);
  13. curl_setopt($get_list, CURLOPT_POSTFIELDS, $array);
  14. $end=curl_exec($get_list);
  15. curl_close($get_list);
  16. die($list);
  17. ?>
  18.  


Так вот всё отлично и корректно работает, но, только если скрипт работает на хосте. В Denwer'e и Open Server'e возвращается пустая страница, причём обе программы даже не отправляют данные. Ежели удалить элемент массива с файлом - всё нормально отправляется, но вот с файлом никак не хотят. На хосте, повторюсь, всё работает. Windows 7 проф.
В чём может быть причина?
 
 Top
DelphinPRO
Отправлено: 20 Февраля, 2013 - 07:23:35
Post Id



Активный участник


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


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




возможно в том, что в винде обратный слеш используется для разделения каталогов.. .\text.txt
а может стоит указать абсолютный путь к файлу
$file = __DIR__ . DIRECTORY_SEPARATOR . 'text.txt';


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
caballero
Отправлено: 20 Февраля, 2013 - 08:40:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




винде по боку какой слеш.

но такие конструкции
$file='./text.txt';
не приветствуются


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
DobrijUser
Отправлено: 20 Февраля, 2013 - 16:57:18
Post Id


Новичок


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


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




DelphinPRO пишет:
возможно в том, что в винде обратный слеш используется для разделения каталогов.. .\text.txt
а может стоит указать абсолютный путь к файлу
$file = __DIR__ . DIRECTORY_SEPARATOR . 'text.txt';


Большое спасибо, помогло второе)
То есть при отправке файлов подобным образом нужно использовать подобные конструкции, в остальных же случаях можно указывать как прежде, относительные пути, вроде './, ../'?
(Добавление)
Ещё решение нашлось. Достаточно было использовать realpath во избежание казуса. Сразу путь к файлу, с разделителями соответствующими ос.
 
 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