使用验证码时出现“图像损坏或截断”错误

时间:2011-09-09 04:34:43

标签: image codeigniter captcha php

我正在使用codeigniter。在我的形式我使用验证码。一切正常,但现在它没有加载,当我检查firebug这个错误给出

Image corrupt or truncated: http://localhost/elephanti//home/auth/get_capture/913472

这是我的控制器

function get_capture() {
    $this->auth_lib->get_capture_image ();
}

在我看来

                                            <div 

class="form-item">
                                                    <div class="catergory-inputs">
                                                        <div class="textarea-large-container" id="caption">
                                                            <img border="0"
                                                                src="<?php echo $this->config->item('base_url'); ?>/home/auth/get_capture/<?php echo rand();?>"
                                                                id="captcha" width="225" height="67" />
                                                        </div>
                                                        <div class="caption-icon">
                                                            <img
                                                                src="<?php echo $this->config->item('img_path') ?>/icon-caption.png"
                                                                width="19" height="20" alt="icon-caption"
                                                                style="cursor: pointer;"
                                                                onclick="reload_chaptca('<?php echo $this->config->item('base_url'); ?>/home/auth/get_capture/','<?php echo rand();?>')" />
                                                        </div>
                                                    </div>
                                                </div>

在我的aut_lib

public function get_capture_image()
{
    $this->ci->load->model('captcha/captcha_model');
$path = APPPATH . '../../assets/3rd/captcha';
$this->ci->captcha_model->lmj_crate_image($path);
}

这是我的验证码模型

public function lmj_crate_image($ path){

$this->resourcesPath=$path;
$ini = microtime(true);

/** Initialization */
$this->lmj_reserved_image();

/** Text insertion */
$text = $this->lmj_get_the_captcha();
$fontcfg = $this->fonts[array_rand($this->fonts)];
$this->lmj_write_fonts($text, $fontcfg);

$this->session->set_userdata($this->session_var, $text);
// $_SESSION[$this->session_var] = $text;

/** Transformations */
$this->lmj_render_image();
if ($this->blur && function_exists('imagefilter')) {
    imagefilter($this->im, IMG_FILTER_GAUSSIAN_BLUR);
}
$this->lmj_low_resalution();


if ($this->debug) {
    imagestring($this->im, 1, 1, $this->height - 8,
            "$text {$fontcfg['font']} " . round((microtime(true) - $ini) * 1000) . "ms",
            $this->GdFgColor
    );
}


/** Output */
$this->lmj_make_image_from_text();
$this->lmj_default_clean();

}

我无法弄清楚这里有什么问题。此代码可能没有帮助。

如果这没用,你可以告诉我不工作的可能原因。感谢...........

2 个答案:

答案 0 :(得分:1)

http://blog.grahamlicence.co.uk/post/preventing-image-corrupt-or-truncated-error-in-firebug.aspx

您是否重命名了图片的文件扩展名(例如将.jpg更改为.png)?

答案 1 :(得分:0)

实际上问题是我在我的一个库中有一个空格,在我删除了空格并删除了php结束标记后,现在它正常工作,谢谢:)