Есть ли способ использовать PHP curl для отправки нескольких файлов в одном запросе?
Я понимаю, что вы можете отправить один файл, используя следующее:
$fh = fopen("files/" . $title . "/" . $name, "w"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, trim($url)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_FILE, $fh); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)"); curl_exec($ch); echo curl_error($ch); curl_close($ch);
Но я хочу иметь возможность писать, скажем, 3 файла, используя один запрос.
Может быть, есть способ написать байты для запроса до curl_exec()
?
Полный пример будет выглядеть примерно так:
<?php $xml = "some random data"; $post = array( "uploadData"=>"@/Users/whowho/test.txt", "randomData"=>$xml, ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, trim("http://someURL/someTHing")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)"); curl_exec($ch); echo curl_error($ch); curl_close($ch); ?>
Вы можете использовать это
$post = array( "file1"=>"@/path/to/myfile1.jpg", "file2"=>"@/path/to/myfile2.jpg", ); curl_setopt($ch, CURLOPT_POSTFIELDS, $post);