Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

06.09.2008, 05:00
|
|
Новичок
Регистрация: 03.09.2008
Сообщений: 13
Провел на форуме: 12708
Репутация:
8
|
|
С сокетов на курл
Приветствую всех форумчан и очень надеюсь на помощь!!!
Сделал загрузчик файла на удалённый хост. На сокетах всё работает прекрасно. Решил переделать на курл и тут не получается.
Вот примерный код:
PHP код:
<?php
$head = "POST /upload.php HTTP/1.1\r\n";
$head .= "Content-type: multipart/form-data; boundary=--UPLOAD\r\n";
$head2 .= "-------UPLOAD-------\r\nContent-Disposition: form-data;\r\n\r\n";
$head2 .= "-------UPLOAD-------\r\nContent-Type: image/gif\r\n\r\n";
$head2 .= file_get_contents($filename);
$head2 .= 'Content-Disposition: form-data; name="uploadfile"'."\r\n";
$head2 .= "Submit Query\r\n-------UPLOAD-------\r\n";
$head .= 'Content-length: '.strlen($head2)."\r\n\r\n".$head2;
$fp = fsockopen('host.ru', 30);
while(!feof($fp))
{
echo fputs($fp, $head);
}
fclose($fp);
?>
(часть заголовков опустил)
Как видно, заголовки довольно мудрёные. Напрягают двойные переносы (\r\n\r\n) и длина запроса, которая берётся из первой части.
Вот что пытался сделать, конечно же ничего не работает.
PHP код:
<?php
$head[] = 'Content-type: multipart/form-data; boundary=--UPLOAD';
$head2[] = '-------UPLOAD-------';
$head2[] = 'Content-Disposition: form-data;';
$head2[] = '-------UPLOAD-------';
$head2[] = 'Content-Type: image/gif';
$head2[] = 'Content-Disposition: form-data; name="uploadfile"';
$head2[] = 'Submit Query';
$head2[] = '-------UPLOAD-------';
$head[] = 'Content-length: '.count($head2);
$head[] = $head2;
$init = curl_init();
curl_setopt($init, CURLOPT_URL,'http://host.ru/upload.php');
curl_setopt($init, CURLOPT_RETURNTRANSFER,true);
curl_setopt($init, CURLOPT_HEADER,true);
curl_setopt($init, CURLOPT_POST,true);
curl_setopt($init, CURLOPT_UPLOAD,true);
curl_setopt($init, CURLOPT_POSTFIELDS,$head);
curl_setopt($init, CURLOPT_INFILESIZE,$_FILES["name"]["size"]);
curl_setopt($init, CURLOPT_INFILE, file_get_contents($_FILES["name"]["tmp_name"]));
$string = curl_exec($init);
curl_close($init);
echo "<pre>$string</pre>";
?>
С курлом столкнулся впервые тем более с передачей файлов на курле. так же гуглил и ничего не нашёл интересного по своему вопросу, кроме как простых статей как загрузить файл на удалённый хост....
Надеюсь на вашу помощь!!!
|
|
|
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
C#: Отправка Post запросов с помощью сокетов. Авторизация на сайтах.
|
Serber |
С/С++, C#, Delphi, .NET, Asm |
4 |
11.04.2008 21:23 |
|
Icq бот на Php без сокетов
|
Хелпер |
PHP, PERL, MySQL, JavaScript |
4 |
10.01.2008 20:53 |
|
Курл и кукисы
|
George767 |
PHP, PERL, MySQL, JavaScript |
10 |
08.01.2008 02:00 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|