2011-04-06 15 views
5

क्या एक ही अनुरोध में एकाधिक फ़ाइलों को भेजने के लिए PHP कर्ल का उपयोग करने का कोई तरीका है?एकल कर्ल अनुरोध में एकाधिक फाइलें लिखें

मैं समझता हूँ कि आप निम्न में से एक एकल फाइल बनाने उपयोग भेज सकते हैं:

$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() से पहले अनुरोध पर बाइट्स लिखने का कोई तरीका हो सकता है?

उत्तर

8

एक पूरा उदाहरण का उपयोग कर सकते हैं:

<?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); 


?> 
+1

यदि आप PHP 5.5+ का उपयोग कर रहे हैं तो यह काम नहीं करेगा। इसके बजाय आपको इसे करने की आवश्यकता है: http://stackoverflow.com/a/29122849/112192 – Jaffer

5

आप कुछ इस तरह दिखेगा यह

$post = array(
    "file1"=>"@/path/to/myfile1.jpg", 
    "file2"=>"@/path/to/myfile2.jpg", 
); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
+0

चाल किया। धन्यवाद। – Koekiebox

संबंधित मुद्दे