上传图片 - multipart / form-data

时间:2014-06-13 18:19:36

标签: php facebook-graph-api

我正在尝试将图片上传到Facebook,因此我可以在一些赞助帖子中使用它们。

图片在我的电脑里,所以我需要先将它们上传到Facebook。我读过我需要使用multipart / form-data上传它们,但我不知道与它有什么关系。如果我创建这个multipart / form-data,我不需要创建表单并与之交互(单击上传按钮,选择图片并提交)。

有没有办法自动完成?如何创建这个multipart / form-data并在我的PHP中使用它而无需单击提交按钮?只需获取结果并使用它来创建我的帖子,并且一次上传超过1张图片。

1 个答案:

答案 0 :(得分: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是图像的示例名称,位于根目录中。

此脚本通过image.png请求将文件http://domain.com/somepage发送到页面POST

可以将另一个POST变量添加到$post数组中。 @需要发送文件。