思路:1、因为是对多个公众号的管理应该得到当前使用的公众号的id。
2、上传图文首先应该想到想把图片上传到微信服务器上(图片必须是永久保存的,不是临时的)。
3、判断图片能否上传成功永久图片的media_id,永久图片的media_id就是图文数组中的thumb_media_id
4、根据图文数组格式调用url 接口成功会返回数据
5、如果有media_id证明上传微信服务器成功还应该吧数据写到数据表中
代码如下:
public function news_submit(){
$mp = getCurrentMp();//当前使用的公众号
$url = I('post.url');//前台以post方式提交返回的数据
$file = realpath('.' . $url);
$title = I('post.title');
$content = I('post.content');
$link = I('post.link');
include APP_PATH . 'LaneWeChat/lanewechat.php';//引用lanewechat框架的文件
$ret = Media::material($file,'image');//上传永久图片的静态方法
// print_r($ret);
// exit;
if(isset($ret['media_id'])){//判断是否有media_id有证明图片上传成功
//$data图文数据json格式
$arr = array(
'title' => $title,
'thumb_media_id' => $ret['media_id'],
'author'=>'zxl',
'digest' =>'aaa',
'show_cover_pic'=>1,
'content'=>$content,
'content_source_url'=>$link
);
$data['articles'][] = $arr;
$data = json_encode($data,JSON_UNESCAPED_UNICODE);
// print_r($data);
// exit;
//图文访问的url
$data = Media::add_news($data);
if(isset($data['media_id'])){
//上传成功就吧数据写到数据表中
$arr['url'] = $ret['url'];
$arr['media_id'] = $data['media_id'];
$arr['title'] = $title;
$arr['description'] = $content;
$arr['type'] = 'news';
$arr['mp_id'] = $mp['id'];
$arr['create_time'] = time();
$arr['path'] = $link;
$ret = M('material')->add($arr);
// print_r($ret);
// exit;
if($ret){
$this->ajaxReturn(array('error'=>1,'msg'=>'添加成功'));
}else{
$this->ajaxReturn(array('error'=>0,'msg'=>'添加失败'));
}
}
}
}