正义潘恩 发表于 2022-6-5 16:13:54

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

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



那么,这个腾讯系内域名是指什么呢?两年前,只要将域名设置为微信公众平台的业务域名,即可在该域名下正常显示图片,最近两年该方法失效,在业务域名下以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;
    }
}


页: [1]
查看完整版本: “此图片来自微信公众平台未经允许不可引用”原因与解...