php中header头设置无效的原因可能有哪些?
laravel5.1中使用这个扩展:https://packagist.org/package...
使用方法按照这里的介绍来使用:
http://www.jianshu.com/p/8e4a...
我的代码:
//验证码
public function code($id){
$builder = new CaptchaBuilder;
$builder->build($width = 100, $height = 40, $font = null);
//获取验证码的内容
$phrase = $builder->getPhrase();
//return $phrase;
//把内容存入session
//Session::flash('milkcaptcha', $phrase);
//session('mycode',$phrase);
//$pic=$builder->inline(); //这里生成图片的是base64编码
//return "<img src='".$pic."'/ alt='验证码'>"; //这样可以正常输出
//生成图片
header("Cache-Control: no-cache, must-revalidate");
header('Content-Type: image/jpeg'); //浏览器中打开后:Content-Type:text/html; charset=UTF-8 为什么会这样?
$builder->output();
}
浏览器中的显示效果:
补充:
看到文档中有写到,laravel中不能直接这样写header,而是应该response()->header();这样设置。
现在设置header的问题是解决了,但问题是,验证码仍然显示不出来,换了几个验证码的扩展,也自己写了个,在别的页面可以正常生成,但在laravel中就是有问题。
很是奇怪。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
把
header
那一段注视掉 。看看您的报错把常规的
header('Content-Type: image/jpeg');
在laravel是不起作用的需要按照laravel的写法设置header,如下
我们只需要把变量
$content
替换成验证码的文件内容。使用$builder->get()
获取内容即可。完整如下
laravel 改变header的写法参考Laravel 的请求返回 Response