oauth2: 对 api 如何上传文件?
程序员文章站
2022-05-04 20:14:49
...
环境是:
- yii2-authclient
- weibo.upload接口
感谢思路/点拨, 这个问题应该不限定在yii2
框架内.
接口文档:pic
类型: binary 描述: 要上传的图片,仅支持JPEG、GIF、PNG格式,图片大小小于5M。
我的代码:
public function sendUpload($text, $url)
{
return $this->api('2/statuses/upload.json', 'POST', [
'status' => $text,
'visible' => self::VISIBLE_ALL,
'pic' => '@'.$url,
'source' => $this->source,
]);
}
执行后返回的错误:
{"error":"unsupport mediatype (application/x-www-form-urlencoded)","error_code":10007,"request":"/2/statuses/upload.json"}
微博提供的演示代码:
function upload( $status, $pic_path, $lat = NULL, $long = NULL )
{
$params = array();
$params['status'] = $status;
$params['pic'] = '@'.$pic_path;
if ($lat) {
$params['lat'] = floatval($lat);
}
if ($long) {
$params['long'] = floatval($long);
}
return $this->oauth->post( 'statuses/upload', $params, true );
}
回复内容:
环境是:
- yii2-authclient
- weibo.upload接口
感谢思路/点拨, 这个问题应该不限定在yii2
框架内.
接口文档:pic
类型: binary 描述: 要上传的图片,仅支持JPEG、GIF、PNG格式,图片大小小于5M。
我的代码:
public function sendUpload($text, $url)
{
return $this->api('2/statuses/upload.json', 'POST', [
'status' => $text,
'visible' => self::VISIBLE_ALL,
'pic' => '@'.$url,
'source' => $this->source,
]);
}
执行后返回的错误:
{"error":"unsupport mediatype (application/x-www-form-urlencoded)","error_code":10007,"request":"/2/statuses/upload.json"}
微博提供的演示代码:
function upload( $status, $pic_path, $lat = NULL, $long = NULL )
{
$params = array();
$params['status'] = $status;
$params['pic'] = '@'.$pic_path;
if ($lat) {
$params['lat'] = floatval($lat);
}
if ($long) {
$params['long'] = floatval($long);
}
return $this->oauth->post( 'statuses/upload', $params, true );
}
你需要 multipart/form-data.
具体参考这个 gist