博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP微信实例——JSSDK图像接口多张图片上传下载并将图片流写入本地
阅读量:5969 次
发布时间:2019-06-19

本文共 2499 字,大约阅读时间需要 8 分钟。

hot3.png

发布图片

最多可添加9张作品

发布

后台处理 testController.php

public function test() {	$signPackage = $this->getSignPackage();	$this->assign('signPackage', $signPackage);	$this->display('test');    }
public function wxupload() {	header('Content-type:application/json;chartset=utf-8');	$img_str = I('post.img_str', '', 'string');      	$uploadROOT 	= realpath(THINK_PATH.'../Public/');//定义保存路径     	$uploadPath 	= $uploadROOT."/Upload/".date('Y-m-d')."/";//为方便管理图片 保存图片时 已时间作一层目录作区分	if(!file_exists($uploadPath)) mkdir($uploadPath,  0775);					$savepath = '/Public/Upload/' . date('Y-m-d').'/'; 	$img_str = rtrim($img_str, ','); 	$img_arr = explode(',', $img_str);	$str = ''; //sql语句字符串	$imgs = array(); 	foreach($img_arr as $v) {		$imgs[] = $this->doWechatPic($v);	}			$str = ''; //sql语句字符串	foreach($imgs as $v) {		$str .= "(NULL," . $this->_user_info_id . "," . $publish_id . ",'" . $v . "')" . ",";	}	$sql = "INSERT INTO img(`id`,`userid`,`publish_id`,`img_url`) values" . rtrim($str, ',');	$res = M()->query($sql);					if($res) {		 $data = array('errcode' => 0, 'msg' => '成功!');	} else {		 $data = array('errcode' => 1, 'msg' => '失败!');	}	exit( JSON($data));    } 	/* 	 * 从微信服务器获取图片流 	 */  	public function doWechatPic($serverId){//media_id=jlJs_iQIOA-TKLuhk4nCdPEdXnJ6paIeToO8vr-WUGvz05-6i5n498EzI232xSxn   	       $media_id = $serverId;//提交过来的serverId即$media_id     	       $access_token 	= $this->_get_wx_access_token_address( false );//获取access_token值	      	        $pic_url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$media_id}";  	        $filebody = file_get_contents($pic_url);//通过接口获取图片流  	        	        $filename = uniqid().'.jpg';            //定义图片名字及格式  	        return $this->saveFile($filename, $filebody);  	}  	  	/* 	 * 定义文件路径,写入图片流 	 */  	public function saveFile($filename, $filecontent){   	    $uploadROOT 	= realpath(THINK_PATH.'../Public/');//定义保存路径     		$uploadPath 	= $uploadROOT."/Upload/".date('Y-m-d')."/";//为方便管理图片 保存图片时 已时间作一层目录作区分		if(!file_exists($uploadPath)) mkdir($uploadPath,  0775);	    $upload_dir = '/Public/Upload/' . date('Y-m-d'); //保存路径,以时间作目录分层  	    $savepath = '.'.$upload_dir.'/'.$filename;       	    	    if(file_put_contents($savepath, $filecontent)){//写入图片流生成图片  	        return $upload_dir."/".$filename;//返回图片路径  	    }else{  	        exit(JSON('save failed'));  	    }  	      	}

需要注意的是 access_token,signPackage参数不能错误

转载于:https://my.oschina.net/bluefrankey/blog/2997028

你可能感兴趣的文章
使用Jquery 加载页面时调用JS
查看>>
css+div+jquery弹出层
查看>>
求职相关(链接,不定期更新)
查看>>
maya pyside 多个窗口实例 报错 解决
查看>>
我的友情链接
查看>>
通知中心
查看>>
我的友情链接
查看>>
MVC中的三个模块
查看>>
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
查看>>
oracle 常用命令大汇总
查看>>
2012年春运火车票电话和网上订票技巧、攻略
查看>>
根据request获取请求路径
查看>>
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>