素材管理

素材包括上传的图片或图文,并将素材上传到公众号服务器上,首先要获取图片的URL,并将获取到的相对路径改为绝对路径,上传的图片可以使临时的也可以是永久的,由staus_type这个来判断,上传公众号服务器要获取access_token(在之前我已经封装好的一个函数中点击打开链接),然后在接入上传图片的接口,一个是临时素材的接口一个是永久素材的接口,再根据得到的media_id将数据存入,具体代码如下:

//图片上传公众号服务器
	public function image_submit(){
		$url=I('post.url');//图片在本地服务器上的路径
		//相对路径->绝对路径
		$file=realpath('.'.$url);
		// echo $file;
		// exit;
		$staus_type=I('post.staus_type');//临时,永久
		$accessToken=getAccess_token();
		include APP_PATH . 'LaneWeChat/lanewechat.php';
		if($staus_type==0){
			//临时素材
			$api="https://api.weixin.qq.com/cgi-bin/media/upload?access_token=$accessToken&type=image";
		}else{
			//永久素材
			$api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
		}
		$data['media']=Curl::addFile($file);
		$ret=Curl::callWebServer($api,$data,'post',true,false);
		if (isset($ret['media_id'])) {
			$mp=$this->mp;
			$data['mp_id']=$mp['id'];
			$data['type']='image';
			$data['url']=$url;
			$data['media_id']=$ret['media_id'];
			$data['create_time']=time();
			M('material')->add($data);
			$this->ajaxReturn(array('msg'=>"上传成功!"));
		} else {
			$this->ajaxReturn(array('msg'=>$ret));
			
		}

	}

关于图文的管理,与图片是相似的,这时调用的则是图文的接口,一般图文中的图片是永久的接口,

具体代码如下:

//图文上传公众号服务器
	public function news_submit(){
		$url=I('post.url');//图片在本地服务器上的路径
		//相对路径->绝对路径
		$file=realpath('.'.$url);
		$title=I('post.title');
		$content=I('post.content');
		$link=I('post.link');
		$accessToken=getAccess_token();
		include APP_PATH . 'LaneWeChat/lanewechat.php';
		//上传永久图片api
		$api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
		$data['media']=Curl::addFile($file);
		$ret=Curl::callWebServer($api,$data,'post',true,false);
		if (isset($ret['media_id'])) {
			$arr=array(
				'title'=>$title,
				'thumb_media_id'=>$ret['media_id'],
				'author'=>'ssh',
				'digest'=>'aaa',
				'show_cover_pic'=>1,
				'content'=>$content,
				'content_source_url'=>$link
				);
			$data['articles'][]=$arr;
			$data=json_encode($data,JSON_UNESCAPED_UNICODE);
			$api="https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=$accessToken";
			$ret=Curl::callWebServer($api,$data,'post',true,false);
			if (isset($ret['media_id'])) {
				$mp=$this->mp;
				$arr['mp_id']=$mp['id'];
				$arr['title']=$title;
				$arr['url']=$url;
				$arr['link']=$link;
				$arr['content']=$content;
				$arr['create_time']=time();
				M('material')->add($arr);
			    $this->ajaxReturn(array('msg'=>"上传成功!"));
			}
			else {
			$this->ajaxReturn(array('msg'=>$ret));
			// $this->ajaxReturn($ret);
		    }

		}else{
			$this->ajaxReturn($ret);
		}


	}
关于图片上传的方法 点击打开链接

猜你喜欢

转载自blog.csdn.net/ssh456/article/details/79993277