欢迎访问个人博客Aris-Blog
在:微信文章归档系统
开发过程中,直接<img src="///">
引用微信公众号里面的图片链接(打开文章后,图片上右键->新标签页打开),会出现以下情况:

解决方案:图片存到本地使用本地URL(图片格式webp
很强大,也是微信用的,动图静图二合一的格式)
- 用户添加或修改首页图片操作的时候:
- 传到后台的图片URL先下载图片写入到本地(外部可访问)
- 根据时间戳生成图片名称
- 返回本地图片的URL
相当于一个简易的图床功能,源码如下:
/**
* 简单图床程序,解决微信图片防止盗链问题,要设置www-data对img文件夹的写入权限
* @desc 输入微信图片URL,存入本地,返回本地URL,涉及文件写入操作,不要放在common
* @param $url
* @return string
*/
private function simplePictureBed($url){
$date = date('Ymd-His', $_SERVER['REQUEST_TIME']);
$file_name = $date.'.webp';//拼接图片名称
$img = file_get_contents($url);
file_put_contents('/webdata/article/public/img/'.$file_name, $img);
return 'http://'.$_SERVER['HTTP_HOST'].'/article/public/img/'.$file_name;
}
public function update($id, $newData) {
$newData['img'] = $this->simplePictureBed($newData['img']);//转换图片地址
$model = new ModelArticle();
return $model->update($id, $newData);
}
网友评论