Zend_Captcha_Image坚持使用字体包含路径

时间:2012-07-24 04:23:11

标签: zend-framework

$captcha = new Zend_Captcha_Image(array(
    'font' => BASE_PATH .'/fonts/Average-Regular.ttf'
));
$captchaId = $captcha->generate();
index.php中的

// Define path to application directory
defined('BASE_PATH')
    || define('BASE_PATH', realpath(dirname(__FILE__) . '/../'));

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

错误:

  

警告:imagepng():无法打开   './images/captcha/564749fc943b090f6d38233071ae1538.png'写作:   在......中没有该文件或目录   /var/www/html/workbench/zend/library/Zend/Captcha/Image.php上线   563

2 个答案:

答案 0 :(得分:1)

试试这个。

$captcha = new Zend_Captcha_Image(array(
    'font' => BASE_PATH .'fonts/Average-Regular.ttf',
    'imgDir'=> //path to captcha image directory,
    'imgUrl'=> '/captcha-image/',
));
$captchaId = $captcha->generate();

您需要定义将存储验证码图像的图像目录。

有关详细信息,请查看文档http://framework.zend.com/manual/en/zend.captcha.adapters.html#zend.captcha.adapters.image

答案 1 :(得分:0)

对于你的字体,'。'将指向保存模块目录的Zend目录。例如,如果您创建一个像ZendSkeletonApplication-master / data / fonts这样的新目录并将您的字体文件设置为ZendSkeletonApplication-master / data / fonts / aril.ttf,那么您可以启动您的验证码如下:

$captcha = new Zend_Captcha_Image(array(
    'font' => './data/fonts/arial.ttf',
    'imgDir'=> 'your nominated directory',
    'imgUrl'=> 'same like above from url',
));
$captchaId = $captcha->generate();

但您始终可以在索引页面中定义一个指向所选目录并使用它的常量。