SAE 存取文件

来源:互联网 发布:广东网络作家协会 编辑:程序博客网 时间:2024/05/18 02:17

今天在研究PHP和微信后台系统调用的时候发现一个问题,在调用微信接口取得用户数据头像图片的时候,有一个url地址,于是我直接用<img> src 指向这个地址,结果万恶的腾讯设置了盗链,使真正的图片显示不出来。


后来我搜了很多关于破解盗链的,还是不行,于是我就想,那干脆将图片存在服务器上,然后IMG指向服务器目录,因为我是用的SAE来做站点,后来发现在调用 file_put_contents 时,报错。是因为我没有SAE文件夹IO权限。


于是我查了SAE的API,发现SAE提供了Storage正是做这个的。于是我调用它的方法,存入地址,取出地址,解决图片显示问题。


当然SAE默认是没有开放这个功能,需要你去开启(如图我已经开启了这个功能):




开启后,就可以用代码来实现这个功能了,如下:

/** 特殊处理图片:腾讯会对盗链进行屏蔽,所以这里只能先将文件存入到SAE服务器,再用链接指向服务器文件*/$img=file_get_contents($image);//获取远程,防盗链,返回值是二进制$m = $openid.".jpg";//命名头像file_put_contents ("saestor://weixinfile/".$m,$img);//存入本地,新浪必须加前缀saestor,存入Storage的Domain管理weixinfile//初始化类$s=new SaeStorage();  //调用SAE提供的类$url=$s->getUrl('weixinfile',$m);  //第一个参数是Domain的名称,第二个是路径名$printstr.= "<img src='".$url."' width='100px' height='100px' />";$userobj["headimage"] = $url;


效果如下:



特此跟大家分享。。。



0 0
原创粉丝点击