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();

}

}

本作品采用《CC 协议》,转载必须注明作者和本文链接

Web 开发者,Laravel 脑残粉,喜欢挑战探索新的东西,更喜欢完成一件有意义的事情之后的成就感!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部