我们获得公众号文章里的图片素材URL后,由于微信使用了防盗链,所以显示不出照片,提示【此图片来自微信公众号平台,未经允许不可引用】,如何解决这个问题呢?
解决办法1
图片转由你的服务器代理输出, 图片地址改为your-domain.com/image-proxy?url=微信的图片地址,
在你的服务端获取这个url地址,file_get_contents再输出,若仍显示防盗链就用curl 模拟header refer来获取数据输出
解决办法2
在html模板的head里添加referer
<meta name="referrer" content="never">
解决办法3
使用七牛云这样的存储CDN功能,我建了一个,使用方法如下:
例如
https://mmbiz.qlogo.cn/mmbiz/Pib4RR89AhxbfibSHHQHf3tfgh1ibSt8M9vWbeBh6bBYTMsDOgzoAFibamLNRXWLV2LdMBqrUsF6hO38WNjQ9yXAUg/0?wx_fmt=jpeg
将mmbiz.qlogo.cn改为七牛提供的https域名:mp.zy62.com
即:
http://mp.zy62.com/mmbiz/Pib4RR89AhxbfibSHHQHf3tfgh1ibSt8M9vWbeBh6bBYTMsDOgzoAFibamLNRXWLV2LdMBqrUsF6hO38WNjQ9yXAUg/0?wx_fmt=jpeg
在网页代码里进行替换即可
推荐使用第2种办法,最直接最简单的办法
4 条评论
第3种方法把mmbiz.qlogo.cn替换成阿里云的域名后发布图文,公众号里图片能正常显示吗
第三种要缓存图片到本地才行,我用的第二种,只把头图保存下来,文章内页图片不变,可以显示的
所谓的第2种办法完全没用
在本地服务器可以的,放服务器不上,我研究了第4种方法,经测试可行