위챗에서 영구 소재를 업로드하고 이미지 URL을 데이터베이스에 저장
한 번에 핵심 코드만 위한 것이지 완전한 것은 아니다.
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 }
전재 대상:https://www.cnblogs.com/xiaogou/p/7198592.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.