cURL и сабмит форм

Статус
В этой теме нельзя размещать новые ответы.
A

Ahmea

Прохожие
Есть форма с enctype="multipart/form-data". Нужен пример сабмита такой формы с файлом с использованием cURL.
Че-то у меня пока ничего не выходит :confused:
 
Есть форма с enctype="multipart/form-data". Нужен пример сабмита такой формы с файлом с использованием cURL.
Че-то у меня пока ничего не выходит :confused:

PHP:
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1); //return data as string
curl_setopt($conn[$i], CURLOPT_REFERER, $url);
curl_setopt($conn[$i], CURLOPT_HEADER, 1);
curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION,1); // follow redirects recursively
curl_setopt($conn[$i], CURLOPT_POST, 1);      
curl_setopt($conn[$i], CURLOPT_POSTFIELDS, $pdata);      
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT, 15); //timeout
curl_setopt($conn[$i], CURLOPT_TIMEOUT, 15); //timeout
curl_setopt($conn[$i], CURLOPT_RANGE, '0-655350'); //timeout
$pdata содержит данные в формате &name=value в одной строке
 
Сорри я недоговорил.
Проблема в том что я не могу файл отсабмитить. :eek:
 
Вот пример:
<?php

$file = "file_to_upload.txt";
$submit_url = "http://www.url_to_upload_to.com/upload_page.php";

$formvars = array("cc"=>"us \n");
$formvars[variable_1] = "bla bla \n";
$formvars[variable_2] = "bla bla \n";
$formvars[variable_3] = "bla bla \n";
$formvars[variable_4] = "bla bla \n";
$formvars[upfile] = "@$file"; // "@" causes cURL to send as file and not string (I believe)

// init curl handle
$ch = curl_init($submit_url);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt"); //initiates cookie file if needed
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt"); // Uses cookies from previous session if exist
curl_setopt($ch, CURLOPT_REFERER, "http://www.last_url_for_referer_logs.com"); //if server needs to think this post came from elsewhere
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); // follow redirects recursively
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);

// perform post
echo $pnp_result_page = curl_exec($ch);
curl_close ($ch);

?>
 
To make a POST in multipart/form-data mode
(to upload a file for example) you can use

curl_setopt($ch,CURLOPT_POSTFIELDS,$post);

where $post is an array :
$post['key1'] = 'data1'
// like a text field in a POST

$post['file1'] = '@filename1'
// upload filename1

For more informations see the
curl_formparse man page.
. :)
 
Это я тоже в доках нашел.
Но вся проблема в том что не работает это. В пхп в баглисте даже висит :(
Если найду выход напишу сюда.
 
Решение было найдено:
_http://sourceforge.net/projects/snoopy/
Но чесно говоря косяков в нем еще больше чем в курле.
Кто будет использовать обратите внимание на то, что он иногда ошибается при обработке редиректов.
Это все в функции _httprequest. Я доработал его немного под себя, решение индивидуальное, смысла выкладывать нет.
 
сколько ни читал и не общался с людьми, кто плотно занимался снупи, все говорят, что после полугода плотного секса с ним, возвращались либо к курлу, либо к сокетам...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху