1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 微信公众号——永久素材的上传

微信公众号——永久素材的上传

时间:2019-05-07 22:31:04

相关推荐

微信公众号——永久素材的上传

微信公众号永久素材的上传

思路:1.需要上传到本地(因为后面需要用的本地的绝对路径 2.上传到微信服务器 3.添加信息到本地数据库

一、上传图片到本地

文件上传的方法

以下是我的代码

首先更改文件上传的配置

而后写我们的文件上传方法

if (request()->isMethod("post")) {//本地图片上传//判断是否有文件上传 并且上传没有出错if (request()->hasFile("img_url") && request()->file("img_url")->isValid()){$img = request()->file("img_url");//获取图片数据$path = $img->store('img');//上传到img}}

这样本地文件上传就成功了 继续我们的第二步

二、公众平台上传图片

我们得知了上传图片所需要的信息。 而media是curl命令。我们要使用php自带类 CURLFile去处理 且CURLFlie参数必须为绝对路径。所以我们需要先把绝对路径拼接好。

$absolute = public_path("uploads/".$path);//绝对路径

接着我们去调用接口发送请求

//本地上传成功后 服务器上传$url ="https://api./cgi-bin/material/add_material?access_token=".$this->get_access_token()."&type=image";//请求所需信息$data = ["media"=> new \CURLFile($absolute), //因为是curl上传所以要调用php自带函数CURLFile 并且要绝对路径];//发送请求$result = json_decode($this->http_post($url,$data),true);//因为没有说要json格式所以不用转换,但因为下面要用。返回的是json格式我们要转为数组格式

三、添加入库

判断微信平台是否上传成功。成功会返回media_id和url,而失败会返回一个errcode状态码。

if(empty($result["errcode"])){//成功 添加入库$imgsource = new Img;$imgsource->img_name = request()->img_name;$imgsource->img_desc = request()->img_desc;$imgsource->img_url = asset("uploads/".$path);$imgsource->media = $result["media_id"];$imgsource->url = $result["url"];$imgsource->save();return redirect("/source/index");}else{//失败return redirect("/source/index");}

整体代码如下

//添加图片public function img(){if (request()->isMethod("post")) {//本地图片上传//判断是否有文件上传 并且上传没有出错if (request()->hasFile("img_url") && request()->file("img_url")->isValid()){$img = request()->file("img_url");//获取图片数据$path = $img->store('img');//上传到img$absolute = public_path("uploads/".$path);//绝对路径//本地上传成功后 服务器上传$url ="https://api./cgi-bin/material/add_material?access_token=".$this->get_access_token()."&type=image";//请求所需信息$data = ["media"=> new \CURLFile($absolute), //因为是curl上传所以要调用php自带函数CURLFile 并且要绝对路径];//发送请求$result = json_decode($this->http_post($url,$data),true);//因为没有说要json格式所以不用转换,但因为下面要用。返回的是json格式我们要转为数组格式//判断是否上传成功if(empty($result["errcode"])){//成功 添加入库$imgsource = new Img;$imgsource->img_name = request()->img_name;$imgsource->img_desc = request()->img_desc;$imgsource->img_url = asset("uploads/".$path);$imgsource->media = $result["media_id"];$imgsource->url = $result["url"];$imgsource->save();return redirect("/source/index");}else{//失败return redirect("/source/index");}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。