Heim >Backend-Entwicklung >PHP-Tutorial >php curl模拟post中如何使用multipart上传文件

php curl模拟post中如何使用multipart上传文件

WBOY
WBOYOriginal
2016-06-06 20:14:351674Durchsuche

使用新浪微博api写图床时出现了20007错误,文档说需要用multipart上传文件。php中curl模拟post该如何用multipart上传文件?

我使用的代码:

<code>$uri = "https://upload.api.weibo.com/2/statuses/upload.json";
$data = array (
        'access_token' => '',
        'status' => '',
        'pic' => ''
);
 
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
 
print_r($return);</code>

回复内容:

使用新浪微博api写图床时出现了20007错误,文档说需要用multipart上传文件。php中curl模拟post该如何用multipart上传文件?

我使用的代码:

<code>$uri = "https://upload.api.weibo.com/2/statuses/upload.json";
$data = array (
        'access_token' => '',
        'status' => '',
        'pic' => ''
);
 
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
 
print_r($return);</code>

看 curl的代码应该是没有什么大问题 ,不知道是不是你几个值为空的原因,
"pic"=>"@/path/to/myfile.jpg",

当你的$data是数组的时候 curl自动会以multipart方式post的
再加一句,数组必须 为K=>v格式的数组

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn