百度小程序第三方接入图片上传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);
 }

文章来源:http://dev.21ds.cn/article/300.html

转载于:https://my.oschina.net/devqianlong/blog/3052079

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值