分享下,实现图片验证返回网址?

代码部分:

  1. 将生成图片的数据存也存放在redis中,然后拼写访问图片URL,将图片的URL返回。
  2. 去api.php中添加一条访问图片URL路由。
  3. 在控制中添加方法,验证captcha_key,取出存入在redis中的图片数据。

file

file

有更好的方法,可以讨论下。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 9

时隔几个月,再次来看这个教程,又理解的很多原来的没有理解到的。
学习就是不断的一次又一次的进步吧,不怕山高,只怕不爬。

5年前 评论

你这本质还是base64 传输 ,只是把前台的图片显示 放到了后台加了个标签再放到前台。。。。。

5年前 评论

你查询下该composer包有没有直接一个方法生成图片,或者如下:

// 将图片写入文件中
file_put_contents($captcha->inline(), public_path("static/{$key}.jpg"));
// 返回的URL地址为
$arra = [
'captcha_img_url' => asset("static/{$key}.jpg");
];
5年前 评论
osang 3年前
悲剧不上演 (作者) 3年前

@悲剧不上演 你这个方法好棒! :+1:

5年前 评论

时隔几个月,再次来看这个教程,又理解的很多原来的没有理解到的。
学习就是不断的一次又一次的进步吧,不怕山高,只怕不爬。

5年前 评论
public function show(Request $request) {
        $captchaData = Cache::get($request->captcha_key);
        if (!$captchaData) {
            exit();
        }
        $captchaBuilder = new CaptchaBuilder($captchaData['captcha']);
        $captchaBuilder->build();
        header('Content-type: image/jpeg');
        $captchaBuilder->output();
    }

file

缺点是会生成乱码

file

4年前 评论
gogo 4年前

@Reason_bobo 生成乱码的原因是输出的格式不对吗?
比如这句: header('Content-type: image/jpeg');

4年前 评论

@Gebriel 我刷新接口时好时坏,不知道是什么问题

4年前 评论
<?php

use Gregwar\Captcha\CaptchaBuilder;

$builder = new CaptchaBuilder;
$builder->build();
You can then save it to a file :

<?php

$builder->save('out.jpg');
Or output it directly :

<?php

header('Content-type: image/jpeg');
$builder->output();
Or inline it directly in the HTML page:

<img src="<?php echo $builder->inline(); ?>" />

虽然有直接保存的方法 但是验证码这个有效期不长,用不着文件保存了 过期还得删文件 就楼主的这种方法就行

3年前 评论

按教程的做法,直接返回base64编码最简单。生成图片的做法相对麻烦一些,更重要的是服务器会多出一些垃圾图片,看来还得在清理缓存之后再加一行代码删除图片。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!