Curl - post type: multipart/form-data как послать файл + данные?

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

MaxLord

Профессор
Регистрация
17 Фев 2007
Сообщения
325
Реакции
49
вот у мну стоит задача - есть такая форма от файл менеджера 1gb.ru
PHP:
<FORM ENCTYPE="multipart/form-data" ACTION="./index.php" METHOD=POST>
Choose a file to upload<BR>
<INPUT  class=btn NAME="fichier" TYPE="file" SIZE="60"><P>
<INPUT TYPE="hidden" NAME="Directory" VALUE=".">
<INPUT TYPE="hidden" NAME="action" VALUE="upload">
<INPUT TYPE="hidden" NAME="sort"    VALUE="NomASC">

<TABLE><TR>
<TD><INPUT class=btn TYPE="Submit" VALUE="Upload" ONCLICK="return SaisieCorrectNomupload(this.form)"></TD>
</FORM>
<FORM METHOD="post" ACTION="./index.php">
<TD>&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="Submit" class=btn VALUE="Cancel" ></TD>
</TR></TABLE>
<INPUT TYPE="hidden" NAME="Directory" VALUE=".">
<INPUT TYPE="hidden" NAME="sort"    VALUE="NomASC">
</FORM>
Надо написать скрипт, который бы отсылал файл симулируя такую форму самостоятельно, насколько я понимаю - это curl
Порылся, поискал про передачу файла через post...
Shailesh Patel wrote:
> hi Stefan,
> thnax for ur reply,i got ur point. but i want to do same
> thing via php curl library not by curl command prompt.
> i searched for curl_setopt options. but bad luck.:( not found.
>
then read again!


"Multipart form uploads (ie simulating the upload of files from a browser form) is
surprisingly easy, yet hard to find information on.... hope this changes that.

$postData = array();

//simulates <input type="file" name="file_name">
$postData[ 'file_name' ] = " [at] test.txt";
$postData[ 'submit' ] = "UPLOAD";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1 );

//seems no need to tell it enctype='multipart/data' it already knows
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData );

$response = curl_exec( $ch );

//where test.txt is a file in the same directory!"
попробовал взять на вооружение, не получилось :) Помогите мастера... плиз =)
Хех, видимо проблема в кукисах - незнаю как их поставить =( они получаются при открытии страницы Url/page.php?login='.$login.'&password='.$password - (пример Для просмотра ссылки Войди или Зарегистрируйся) как получить эти куки и использовать их? тоесть сначала надо загрузить эту страницу используя логин и пасс, затем используя куки выгружать файл - симулировать форму...там в кукисах чтото типо PHPSESSID:kjfdgk43k0994kjr ну в таком роде... всего одна строчка...
 
Слишком много лишних слов и действий.
Если задача просто послать файл, то ничего кроме правильной формы не надо.

Код:
<form action="" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
    <input type="file" name="file" />
    <input type="submit" name="submit" value="submit" />
</form>

Указываешь в экшене обработчик, а там уже ловишь суперглобальный массив $_FILES

Только учти что скорее всего больше 2 метров ты отправить не сможешь, т.к. на серваке стоит ограничение.
 
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху