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]   

> Описание: как отправить файл на сторонний сайт.
pdbq
Отправлено: 07 Апреля, 2016 - 10:31:29
Post Id


Новичок


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


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




Нужно осуществить массовую отправку файлов на моем сайте.

Мой сайт: сайт№1
Сторонний сайт: сайт№2

На сайте№2 есть форма(иного доступа к этому сайту кроме как к просмотру у меня нету)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="/uploadfile" enctype="multipart/form-data" style="display:inline;">
  3. <div>Выберите подписанный и зашифрованный файл с документом</div>
  4. <p></p><div>Файл:&nbsp;&nbsp;<input type="file" size="50" name="filein" vk_10e27="subscribed">&nbsp;&nbsp;&nbsp;<input type="submit" value="Отправить"></div>
  5. </form>


На моем сайте php код:
PHP:
скопировать код в буфер обмена
  1. if(!empty($_POST['f4_all'])){
  2.         $dir = realpath('./nullxmltof4');
  3.         $f = scandir($dir);
  4.         $nullxmltof4=array();
  5.         foreach ($f as $file){
  6.                 if(preg_match('/\.(ef4)/', $file)){
  7.                         //echo $file.'<br/>';
  8.                         $nullxmltof4[] = $file;
  9.                 }
  10.         }
  11.         //var_dump($nullxmltof4);
  12.         $target_url = 'сайт№1';
  13.         foreach($nullxmltof4 as $asd){
  14.                 $filename='/nullxmltof4/'.$asd;
  15.                 //$file_name_with_full_path = realpath($filename);
  16.                 $file_name_with_full_path=__DIR__ .$filename;
  17.                 //echo $file_name_with_full_path."<br>";
  18.                 $pathinfo = pathinfo($file_name_with_full_path);
  19.                 $filenameinfo = $pathinfo['basename'];
  20.                 $post = array('file'=>'@'.$file_name_with_full_path . ';filename=' . $filenameinfo);
  21.  
  22.                 $ch = curl_init();
  23.                 curl_setopt($ch, CURLOPT_URL,$target_url);
  24.                 curl_setopt($ch, CURLOPT_POST,1);
  25.                 curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  26.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  27.                 $result=curl_exec ($ch);
  28.                 if (curl_errno($ch)) {
  29.             print "Error: " . curl_error($ch);
  30.         } else {
  31.             //var_dump($result);
  32.             curl_close($ch);
  33.         }
  34.         }
  35. }
  36.  

но файлы не уходят. Если нужны реальные данные и один из файлов могу предоставить. Очень надеюсь на Вашу помощь. Спасибо!
(Добавление)
Зголовки ответа
CODE (htmlphp):
скопировать код в буфер обмена
  1. Access-Control-Allow-Orig...   
  2. *
  3. Cache-Control  
  4. no-store, no-cache, must-revalidate, max-age=0
  5. Content-Length 
  6. 52
  7. Content-Type   
  8. text/plain
  9. Expires
  10. Mon, 04 Dec 1999 21:29:02 GMT
  11. Pragma 
  12. no-cache




Заголовки запроса
CODE (htmlphp):
скопировать код в буфер обмена
  1. Accept 
  2. text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  3. Accept-Encoding
  4. gzip, deflate
  5. Accept-Language
  6. ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  7. Connection     
  8. keep-alive
  9. Host   
  10. ff.kis.scr.kaspersky-labs.com
  11. Origin 
  12. http://сайт№1
  13. Referer
  14. http://сайт№1/id=8669-1072-1151-01-0272001339
  15. User-Agent     
  16. Mozilla/5.0 (Windows NT 5.1; rv:44.0) Gecko/20100101 Firefox/44.0

(Отредактировано автором: 07 Апреля, 2016 - 12:22:26)

 
 Top
pdbq
Отправлено: 07 Апреля, 2016 - 18:24:01
Post Id


Новичок


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


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




Спасибо, разобрался сам
Для формы
CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="/uploadfile" enctype="multipart/form-data" style="display:inline;">
  2. <div>Выберите подписанный и зашифрованный файл с документом</div>
  3. <p></p><div>Файл:&nbsp;&nbsp;<input type="file" size="50" name="filein" vk_10e27="subscribed">&nbsp;&nbsp;&nbsp;<input type="submit" value="Отправить"></div>
  4. </form>

Будет так
PHP:
скопировать код в буфер обмена
  1. $target_url = 'http://сайт№1/uploadfile';
  2.         foreach($nullxmltof4 as $asd){
  3.                 $filename='/nullxmltof4/' . $asd;
  4.                 $file_name_with_full_path=__DIR__ .$filename;
  5.  
  6.                 $post = array('filein'=>'@'.$file_name_with_full_path . ';filename=' . $asd);
  7.                 $ch = curl_init();
  8.                 curl_setopt($ch, CURLOPT_URL,$target_url);
  9.                 curl_setopt($ch, CURLOPT_HEADER, 1); // получать заголовки
  10.                 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  11.                 curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36');
  12.                 curl_setopt($ch, CURLOPT_REFERER, 'http://yandex.ru');
  13.                 curl_setopt($ch, CURLOPT_POST,1);
  14.                 curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  15.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  16.                 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Говорим скрипту, чтобы он следовал за редиректами которые происходят во время авторизации   
  17.                 $result=curl_exec ($ch);
  18.                 if (curl_errno($ch)) {
  19.             print "Error: " . curl_error($ch);
  20.         }
  21.                 else {
  22.             var_dump($result);
  23.             curl_close($ch);
  24.         }
  25.         }

(Отредактировано автором: 07 Апреля, 2016 - 18:24:57)

 
 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