首页 > 代码库 > 微信上传永久素材并保存图片URL到数据库
微信上传永久素材并保存图片URL到数据库
基于tp5编写的
一下只为核心代码,不是完整的。
Wechat.php需要继承Base.php才可以使用它里面的方法。
Wechat.php下的添加图片方法如下:
1 public function add()//上传图片素材 2 { 3 //echo $_SERVER[‘DOCUMENT_ROOT‘]; 4 //$this->upload(); 5 if(request()->isPost()){ 6 $date=date("Y-m-d h:i:s"); 7 $data[‘date‘]=$date; 8 //图片上传 9 if($_FILES[‘pic‘][‘tmp_name‘]){10 $file = request()->file(‘pic‘);11 // 移动到框架应用目录/public/static/ 目录下12 $info = $file->move(ROOT_PATH . ‘public/static‘ . DS . ‘uploads‘);13 // var_dump( $info);14 if($info){15 // 成功上传后 获取上传信息16 $data[‘pic‘]=‘uploads/‘.date(‘Ymd‘).‘/‘.$info->getFilename(); 17 $url=$this->upload($data[‘pic‘]);18 $data[‘url‘]=$url;19 //echo $info->getFilename(); die;20 // echo $data[‘pic‘]; die;21 }else{22 // 上传失败获取错误信息23 return $this->error($file->getError());24 }25 26 //图片上传27 if(\think\Db::name(‘sucai‘)->insert($data)){28 return $this->success(‘添加成功!‘,‘sucai‘);29 }else{30 return $this->error(‘添加失败!‘);31 }32 }else{return $this->error(‘请先选择图片‘);} 33 } 34 35 }
Base.php里的核心方法如下:
1 public function upload($pic)//调用上传素材的方法(可用) 2 { //$pic为上传成功后的图片相对路径,还需拼接 3 $access_token=$this->getWxAccessToken(); 4 $type="image"; 5 //$filepath=dirname(__FILE__)."\pic\wo.jpg";//法一:从当前文件夹开始拼接路径,(可用的) 6 //$filepath= $_SERVER[‘DOCUMENT_ROOT‘]."/wexin/public/static/uploads/test.jpg";//法二:从网站根目录拼接路径,(可用的) 7 $filepath= $_SERVER[‘DOCUMENT_ROOT‘]."/wexin/public/static/".$pic; 8 $filepath=str_replace("/","\\",$filepath);//windows上传需要用\,所以替换一下 9 $filedata=array("media"=>"@".$filepath);10 //$url="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=$access_token&type=$type";//临时素材接口,(可用)11 $url="https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=$access_token";//永久素材接口(可用)12 $result=$this->httpsPic($url,$filedata);13 $result=json_decode($result,true);14 $result=str_replace("\\","", $result[‘url‘]);//需要用/,替换回来15 return $result;16 }17 18 public function httpsPic($url,$data)//上传图片素材方法(可用)19 {20 $curl=curl_init();21 curl_setopt($curl,CURLOPT_URL, $url);22 curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);23 curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);24 if(!empty($data)){25 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);26 curl_setopt($curl,CURLOPT_POSTFIELDS,$data);27 }28 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);29 $output=curl_exec($curl);30 if(curl_error($curl)){31 curl_error($curl);32 curl_close($curl);33 }else{34 return $output;35 }36 }
微信上传永久素材并保存图片URL到数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。