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 :: cURL

 PHP.SU

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


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

> Описание: загрузка файла
demot
Отправлено: 09 Декабря, 2010 - 21:47:22
Post Id


Частый гость


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


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




Пытаюсь загрузить файл скриптом:
PHP:
скопировать код в буфер обмена
  1. $fp = array('file'=>"@D:\\WebServers\\home\\test1.ru\\www\\my49.jpg");
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, "scp://.<путь>./wallpaper/images/");
  4. curl_setopt($ch, CURLOPT_USERPWD , 'логин:пароль');
  5. curl_setopt($ch, CURLOPT_HEADER, 1);
  6. curl_setopt($ch, CURLOPT_UPLOAD, 1);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_INFILESIZE, $fp);
  9. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,30);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, $fp);
  11. echo "<pre>".curl_exec($ch);
  12. echo curl_error($ch)." №".curl_errno($ch);

на что получаю такую ошибку:
scp: /.<путь>./wallpaper/images//: Is a directory №79
Помогите разобраться, а то уже нервы сдают...

P.S.
С cURL еще не особо знаком, это только 2-я попытка применения, потому прошу помощи. Файл пытаюсь грузить по scp с win на freebsd, права на папку стоят 777. Когда игрался с разными опциями выдавался список файлов в каталоге, так что подключение происходит нормально. Может я вообще что-то не то делаю....
 
 Top
OrmaJever Модератор
Отправлено: 09 Декабря, 2010 - 22:50:08
Post Id



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


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


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




а вы пробовали вывести $fp['file'] ? Потому что путь както коряво написан...
в POSTFIELDS нужно передавать строку а не масив.

(Отредактировано автором: 09 Декабря, 2010 - 22:51:29)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
demot
Отправлено: 10 Декабря, 2010 - 06:34:15
Post Id


Частый гость


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


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




OrmaJever, в принципе заработал такой код:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $name = "my49.jpg";
  3. $fp = fopen($name, "r");
  4. $size = filesize($name);
  5. $upass = "логин:пароль";
  6. $ch = curl_init();
  7. curl_setopt($ch, CURLOPT_URL, "scp://.<путь>./wallpaper/images/$name");
  8. curl_setopt($ch, CURLOPT_USERPWD , $upass);
  9. curl_setopt($ch, CURLOPT_UPLOAD, 1);
  10. curl_setopt($ch, CURLOPT_INFILESIZE, $fp);
  11. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,30);
  12. curl_setopt($ch, CURLOPT_POSTFIELDS, $fp);
  13. curl_setopt($ch, CURLOPT_INFILE, $fp);
  14. curl_setopt($ch, CURLOPT_INFILESIZE, $size);
  15. echo "<pre>".curl_exec($ch);
  16. echo curl_error($ch)." ".curl_errno($ch);
  17. ?>

Все работает, файл пишется, но пишется я так понимаю не совсем так. По всей видимости файл не копируется, а создается на сервере новый и записывается в него содержимое исходного. Но это меня вполне устраивает, т.к. размеры совпадают, файл не "бьется" по пути и читается нормально. Но, после выполнения скрипта функция curl_error($ch) возвращает "1", хотя в мануале написано, что при успешном выполнении она должна возвращать пустую строку. curl_errno($ch) возвращает "0", как и должно быть.
Что может означать "1" и стоит ли обращать на нее внимание вообще?
 
 Top
OrmaJever Модератор
Отправлено: 10 Декабря, 2010 - 12:40:27
Post Id



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


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


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




Чесно сказать я не совсем понял что вы хотите зделать? ваш скрипт просто копирует файл из одного места в другое на одном сервере.
cURL это для работы с другими сервера. Тоесть например можно загрузить файл на депозит или другие файлообменики, но не просто скопировать у себя на сервере из папки в папку.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 10 Декабря, 2010 - 13:03:44
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




demot пишет:
scp: /.<путь>./wallpaper/images//: Is a directory №79Помогите разобраться, а то уже нервы сдают...
Возможной причиной приведннной вами ошибки является спецификация протокола SCP для осуществления загрузки файла которая требует явного указания целевого объекта с именем в которое подлежит сохранению информация - дело в том что используемой локальное имя файлового объекта в действительности может не передаваться на целевой сервер - и по этой причине в качестве пути сохранения необходимо применять желаемый полный виртуальный путь к объекту


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
demot
Отправлено: 10 Декабря, 2010 - 13:16:31
Post Id


Частый гость


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


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




JustUserR, спасибо, с этим разобрался уже.

OrmaJever пишет:
ваш скрипт просто копирует файл из одного места в другое на одном сервере

OrmaJever, вы ошиблись, данный скрипт как раз копирует с моего локального сервера файл на удаленный сервер по scp
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB