百度小程序第三方接入图片上传demo

代码是基于ThinkPHP 3.2的,其他语言请自行实现,PHP版本为5.6

/**
* 图片上传
* @Author Qianlong <87498106@qq.com>
* @PersonSite http://dev.21ds.cn/
*/ 
public function onlyUploadImage()
 {
 $upload = new \Think\Upload(); // 实例化上传类
 $upload->maxSize   =     3145728; // 设置附件上传大小
 $upload->exts      =     array('jpg', 'bmp', 'png', 'jpeg'); // 设置附件上传类型
 $upload->rootPath  =     './Uploads/'; // 设置附件上传根目录
 $upload->savePath  =     ''; // 设置附件上传(子)目录
 // 上传文件 
 $info   =   $upload->upload();
 $access_token = $this->applet->getAccessToken();
 $filename = '/webroot/Uploads/' . $info['file']['savepath'] . $info['file']['savename'];
 $postd['access_token'] = $access_token;
 $postd['type'] = 2;
 $file['realpath'] = $filename;
 $file['name'] = 'multipartFile';
 $file['type'] = $info['file']['type'];
 $status = $this->Https_request('https://openapi.baidu.com/file/2.0/smartapp/upload/image',  $postd,null, $file);
 if (!empty($status)) {
 switch ($status['errno']) {
 case '0':
 $returnData['code'] = 200;
 $returnData['data'] = $status['data'];
 $returnData['msg'] = '上传成功';
 $this->BspReturn($returnData);
 break;
 case '47003':
 $returnData['code'] = -1;
 $returnData['data'] = '';
 $returnData['msg'] = '图片格式无效';
 $this->BspReturn($returnData);
 break;
 case '47000':
 $returnData['code'] = -1;
 $returnData['data'] = '';
 $returnData['msg'] = '图片格式无效';
 $this->BspReturn($returnData);
 break;
 default:
 $returnData['code'] = -1;
 $returnData['data'] = $status;
 $returnData['msg'] = '上传失败,请重试';
 $this->BspReturn($returnData);
 break;
 }
 } else {
 $returnData['code'] = -1;
 $returnData['data'] = $status;
 $returnData['msg'] = '上传失败,请重试';
 $this->BspReturn($returnData);
 }
 }
 public function Https_request($url,  $data = null, $cookie = null, $file = null, $header = '')
 {
 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt(
 $curl,
 CURLOPT_SSL_VERIFYPEER,
 FALSE
 );
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
 //携带cookie文件
 if (!empty($cookie)) {
 curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); //读取cookie
 }

 //携带头
 if (!empty($header)) {
 curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
 }

 //上传文件
 if (!empty($file)) {
 $file_obj = new \CURLFile($file['realpath'], $file['type']);
 $data["{$file['name']}"] = $file_obj;
 }

 //发送post数据
 if (!empty($data) && !isset($file_obj)) {
 curl_setopt($curl, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
 } elseif (!empty($data)) {
 curl_setopt($curl, CURLOPT_POST, 1);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
 }
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($curl);

 if (empty($output)) return 'no data';
 curl_close($curl);
 return is_null(json_decode($output)) ? $output : json_decode($output, true);
 }
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注