美文网首页程序/UI
百度小程序第三方接入图片上传demo

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

作者: 千龙18 | 来源:发表于2019-05-21 10:01 被阅读0次

    代码是基于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

    相关文章

      网友评论

        本文标题:百度小程序第三方接入图片上传demo

        本文链接:https://www.haomeiwen.com/subject/oukdzqtx.html