“此图片来自微信公众平台未经允许不可引用”原因与解决方法

今天,一位朋友拿到微信图片在自己网站引入时,结果提示:

此图片来自微信公众平台未经允许不可引用

 

原因

根据微信开发文档的说明,微信公众平台的图片需要在腾讯系内域名下使用,否则会被屏蔽。

 

那么,这个腾讯系内域名是指什么呢?两年前,只要将域名设置为微信公众平台的业务域名,即可在该域名下正常显示图片,最近两年该方法失效,在业务域名下以http和https调用微信公众平台的图片,均不能正常显示。

 

解决方法

这里就说一下解决思路吧,也不能算是一个彻底的解决方法,毕竟都是各有优缺点的。

 

第一种方法:全局禁用 referer

 

在头部加入以下代码:

 <!--全局禁用 referer-->
  <meta name="referrer" content="no-referrer" />
  <meta data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">

 

第二种方法:读取url图片,转为 base64 输出

 

php代码示例:

/**
 * 获取网络图片的Base64编码
 * $img_url 网络图片地址
 * $hasPre  是否有前缀
 * @return string
 */
if (!function_exists('imgToBase64')){
    function imgToBase64($img_url,$hasPre = true)
    {
        $img_base64 = '';
        $imageInfo = getimagesize($img_url);
        if (!$imageInfo) {
            return false;
        }
        $img_base64 = "" . chunk_split(base64_encode(file_get_contents($img_url)));
        if ($hasPre) {
            $img_base64 = 'data:' . $imageInfo['mime'] . ';base64,'.$img_base64;
        }
        return $img_base64;
    }
}
    A+
发布日期:2022年05月17日 11:43:58  所属分类:微信开发
最后更新时间:2022-05-17 11:46:17
头像
  • ¥ 198.0元
  • 市场价:398.0元
  • ¥ 398.0元
  • 市场价:498.0元
  • ¥ 29.0元
  • 市场价:99.0元
  • ¥ 159.0元
  • 市场价:599.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: