微信开发(四)素材


本人github -> link

线下上传

线下较为简单,通过form发送值,input要上传文件类型

<input type="file" name="image" id="">

form表单+参数:

enctype="multipart/form-data"

控制器

 public function do_upload(Request $request){
        $name='image';
        if(!empty($request->hasFile($name))){
            $path=request()->file('image')->store('goods');
            dd('/storage/'.$path);
        }else{
            echo '嘟嘟';
        }
    }

打印路径
在这里插入图片描述
加上域名访问一下子!
在这里插入图片描述

线上上传

表单内容无特殊要求

拿到资源路径
$file_name=time().rand(100000,999999).'.'.$ext;//随便用rand函数生成一个名字
$path=request()->file($name)->storeAs('wechat/'.$source_type,$file_name);

返回结果
在这里插入图片描述
拿到其于本地绝对路径

$path = realpath('./storage/'.$path);

在这里插入图片描述

注意:video资源与其他类型资源有异(此guzzle_upload为文档内容,请自行设计)link
$url='https://api.weixin.qq.com/cgi-bin/material/add_material?access_token='.$this->get_wechat_access_token().'&type='.$source_type;
if($source_type=='video'){
          $title='标题';
          $desc='描述';
  	$result=$this->guzzle_upload($url,$path,$client,1,$title,$desc);//guzzle上传video
}else{
    $result=$this->guzzle_upload($url,$path,$client);//guzzle上传除video外素材
}

删除素材

https://api.weixin.qq.com/cgi-bin/material/del_material?access_token=ACCESS_TOKEN

传一个media_id参数

“media_id”:MEDIA_ID

curl_post为curl传输工具

		$url='https://api.weixin.qq.com/cgi-bin/material/del_material?access_token='.$this->tools->get_access_token();
        $data=[
            'media_id'=>$media_id
        ];
        $re=$this->tools->curl_post($url,json_encode($data));

curl是url的传输工具,可以说是个正常的开发人员都会用到,因为他支持文件传输与下载,所以很有逼格,另外还有guzzle,上面有链接可以打开。如果有机会我会发布专门讲解传输工具的csdn,而现在我也不太懂,等我研究研究

拿到素材列表

url

https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

data

{
“type”:TYPE,
“offset”:OFFSET,
“count”:COUNT
}

也是通过传输工具。

 $req=$request->all();
//        dd($req);
        empty($req['source_type'])?$source_type='image':$source_type=$req['source_type'];
        if(!in_array($source_type,['image','voice','video','thumb'])){
            dd('文件类型错误');
        }
//        echo empty(0);
        empty($req['page'])?$page=1:$page=$req['page'];
        if($req['page']<=0){
            dd('你这个页数很猖狂');
        }

        $pre_page=$page-1;
        $pre_page <=0 && $pre_page =1;
        $next_page=$page+1;
//        dd($page);
        //获取素材列表接口
        $url='https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token='.$this->tools->get_access_token();
        $data=[
            'type'=>$source_type,
            'offset'=>$page==1?0:($page-1)*20,
            'count'=>20
        ];
        
   $re=$this->tools->curl_post($url,json_encode($data));
//        dd($re);

也可以存入redis

$this->tools->redis->set('source_info_voice',$re);

用的时候从reids拿出来

$re=$this->tools->redis->get('source_info_voice');

获取永久素材

https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN

{
“media_id”:MEDIA_ID
}

还是通过工具来拿到。

$re=$this->tools->curl_post($url,json_encode(['media_id'=>$media_id]));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值