PHP curl模拟表单上传文件 微信公众号素材管理接口crul文件上传核心源码

PHP curl模拟表单上传文件  微信公众号素材管理接口crul文件上传核心源码

 /**
     * curl 上传文件
     * @param $url
     * @param $filePath
     * @param string $fileType 图片(image)、语音(voice)、视频(video)和缩略图(thumb)
     * @param string $fileName
     * @return bool|mixed
     */
    static function uploadFile( $url ,$filePath,$fileType='image',$fileName='') {
        $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($filePath)){
            $pathInfo = pathinfo($filePath);
            if($fileName){
                if(substr($fileName, strrpos($fileName, '.')+1)){
                    $fileName = $fileName.'.'.$pathInfo['extension'];
                }
            }else{
                $fileName = $pathInfo['filename'].'.'.$pathInfo['extension'];
            }
            $file_obj = new \CURLFile($filePath,$fileType,$fileName);
            $data['media'] = $file_obj;
            if($fileType === 'video'){
                $data['description'] = '{"title":"VIDEO_TITLE","introduction":"INTRODUCTION"}';
            }
        }

        //发送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 false;
        curl_close ( $curl);
        return is_null(json_decode($output))?$output:json_decode($output,true);
    }

 

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值