真心求解答,在action中直接输出图片不行,调了3个多小时,最终放弃了 [ 求助交流 ]
**我想达到的效果是,直接输出图片,但是输出的是乱码,估计是图片的二进制, 因为在1.1中是没问题的,生成图片的代码也可以确定是没问题的。我也考虑过命名空间的问题,但是应该不是问题。 不要说文档里面那种widget的方式,我要的不是那个效果
输出的大概是这种东西:**
�PNG IHDR�(���PLTE���S3��˙�����?}e!hL]�{��^] pHYs���+�IDATH���IO�0�-'mr������P�rm܉P�Kz�,�F����vGB�#*$y'����231c�Z�-h��A]����פX'>�r��A��l����adV ��P�]u����� ���Y1(�Y���]� Af l���Xj�pA���067��P�Y����Tm��1�ؠ��D�=��mV~)o� �^���]�J�) ���c`d�c��,�Jՙȝ��ŁI{{��J����������n�7Ѐ��W�υ������a�V���&��ǎz�ៈ���;�Y\�� �o�X�9��ܰF�%3��H΅��j���|"� 0;eNc���>W���rUPn��}�+�/��_w�F������2U?yP)�n�ǟZm���%2wNէ4qEF�4������z2;���a��Z���L�?���p�IEND�B`�
生成图片的方法部分代码:
header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header("content-type: image/png");
// 输出图像
imagepng(self::$_image);
imagedestroy(self::$_image);
**我直接在浏览器获取Response头,并不是content-type: image/png,而是普通的text/html。 超郁闷。。。。。。。
这是action:**
public function actionGetcaptcha() {
// require_once(Yii::$app->basePath . '/extensions/static/StaticFun.php');
// include Yii::$app->basePath.'/'.'extensions/yzm2/Captcha.php';
// echo Yii::$app->basePath.'/'.'extensions/yzm2/Captcha.php';
// use Captcha;
// $this->setHeader(400);
$headers = Yii::$app->response->headers;
$headers->remove('Vary');
$headers->remove('Content-Encoding');
$headers->set('Vary', '123');
$headers->set('Content-Encoding', '234');
// $headers->set('Cache-Control', 'private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
// $headers->set('Pragma', 'no-cache');
$headers->set('Content-Type', 'uuuuuuuuuuuuuu');
var_dump(Yii::$app->response->getHeaders());
// var_dump(Yii::$app->response->getHeaders());
Captcha::$useImgBg = false; // 是否使用背景图片
Captcha::$useNoise = false; // 是否添加杂点
Captcha::$useCurve = false; // 是否绘制干扰线
Captcha::$useZh = false; // 是否使用中文验证码
Captcha::$fontSize = 20; // 验证码字体大小(像素)
Captcha::$length = 4; // 验证码字符数
Captcha::entry(); // 输出图片
// header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate');
// header('Cache-Control: post-check=0, pre-check=0', false);
// header('Pragma: no-cache');
// header("content-type: image/jpeg");
// $aa = new CaptchaAction(Yii::$app->controller->action->id, Yii::$app->controller->id);
// $aa->height = 3;
// $aa->backColor=0x000000;//背景颜色
// $aa->maxLength = 6; //最大显示个数
// $aa->minLength = 5;//最少显示个数
// $aa->padding = 5;//间距
// $aa->height=40;//高度
// $aa->width = 130; //宽度
// $aa->foreColor=0xffffff; //字体颜色
// $aa->offset=4; //设置字符偏移量 有效果
// $aa->run();
// $aa->runWithParams();
}
求各位神解答啊!救救我
共 1 条回复
-
dingjj2010 回复于 2015-11-16 10:54 举报
没懂你的意思。。怎么直接回传图片??
一般的做法是返回图片的路径。用路径来访问图片啊。。怎么又直接回传图片的呢?
你要绘制图片啊,验证码之类的也是先生成好图片,在用图片路径来访问,或者直接base64来访问啊。
mymissbook
注册时间:2015-11-12
最后登录:2016-01-20
在线时长:2小时23分
最后登录:2016-01-20
在线时长:2小时23分
- 粉丝0
- 金钱35
- 威望0
- 积分55