2014-06-13 52 views
0

我試圖上傳圖片到Facebook,所以我可以在一些贊助的帖子中使用它們。上傳圖片 - multipart/form-data

圖片在我的電腦裏,所以我需要先把它們上傳到Facebook。我讀到我需要使用multipart/form-data來上傳它們,但我不知道與它有關的任何內容。如果我創建了這個multipart/form-data,我不需要創建一個表單並與其交互(點擊上傳按鈕,選擇圖片並提交)。

有沒有辦法自動做到這一點?我如何創建這個multipart/form-data並在我的PHP中使用它,而無需點擊提交按鈕?只需獲取它的結果並使用它來創建我的帖子,並且一次上傳超過1張圖片。

回答

0

試試這個

<? 
$filename='image.png'; 
$link='http://domain.com/somepage'; 
$post=array('file'=>'@'.$filename); 
$ch=curl_init(); 
curl_setopt($ch,CURLOPT_URL,$link); 
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0); 
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
"User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17", 
"Accept-Language: ru-RU,ru;q=0.9,en;q=0.8", 
"Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1")); 
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post); 
$pagetext=curl_exec($ch); 
curl_close($ch); 
?> 

image.png是圖像的例子名字,在根目錄那個地方。

該腳本通過POST請求將文件image.png發送到頁面http://domain.com/somepage

另一個POST變量可能會添加到$post數組中。 @需要發送文件。

+0

謝謝,我會試試這個。對不起,我的無知,但是這個腳本使用multipart/form-data?因爲我需要使用這種類型的上傳來在我的電腦中使用Facebook發佈的圖片。' – user3697768

+0

''multipart/form-data' header由'curl_setopt($ ch,CURLOPT_POSTFIELDS,$ post)自動添加;'因爲$ post是數組。欲瞭解更多信息,請訪問http://php.net/manual/en/function.curl-setopt.php – CnapoB