Home >Backend Development >PHP Tutorial >php curl模拟post中如何使用multipart上传文件

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

WBOY
WBOYOriginal
2016-06-06 20:14:351657browse

使用新浪微博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格式的数组

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn