php微信头像转base64,学习猿地-微信头像链接转 base64

由于自己脑子比较笨 记录一下微信头像链接转 base64 的方法

如有侵权请联系 18210686506 郝

使用到的工具

composer require ixudra/curl

在 App\Http\Responses 创建一个新的文件 AjaxResp.php

AjaxResp.php

namespace App\Http\Responses;

class AjaxResp {

public function __construct() {

$params = func_get_args();

foreach( $params as $param )

{

$this->{$param} = null;

}

}

// 将对象转为 JSON 对象

public function toJson()

{

$json = json_encode($this, JSON_UNESCAPED_UNICODE);

return response()->make($json)->header('Content-Type', 'application/json; charset=UTF-8');

}

public $ret;

public $msg;

}

创建一个的控制器 然后写入话不多说直接上码

namespace App\Http\Controllers;

use Illuminate\Routing\Controller as BaseController;

use App\Http\Responses\AjaxResp;

use App\Models\WxUser;

use Curl;

use Image;

class WeChatController extends BaseController

{

public function avatarBridge() {

set_time_limit(60);

$resp = new AjaxResp();

$headimgurl = request('headimgurl');

if( !$headimgurl ) {

$resp->ret = 1;

$resp->msg = 'invalid headimgurl url';

return $resp->toJson();

}

// 获取大图

$headimgurl = substr($headimgurl, 0, strripos($headimgurl, '/')) . '/0';

$filename = sha1($headimgurl);

$ymd = date('Ymd');

$uploadDir = public_path("/upload/avatar/$ymd");

if( !is_dir($uploadDir) ) {

@mkdir($uploadDir, 0777, true);

}

$fileuri = "/upload/avatar/$ymd/$filename.png";

$filepath = public_path($fileuri);

if( !file_exists($filepath) || filesize($filepath) < 8 ) {

$response = Curl::to($headimgurl)

->withContentType('image/png')

->withHeader('Connection: close')

->download($filepath);

}

if( !file_exists($filepath) ) {

$resp->ret = 3;

$resp->msg = 'headimgurl download error';

return $resp->toJson();

}

// 头像 base64

$type = pathinfo($filepath, PATHINFO_EXTENSION);

$avatarData = file_get_contents($filepath);

$resp->ret = 0;

$resp->msg = 'success';

$resp->base64 = 'data:image/' . $type . ';base64,' . base64_encode($avatarData);

return $resp->toJson();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值