Zend framework Zend_Captcha_图像使用字体包含路径

Zend framework Zend_Captcha_图像使用字体包含路径,zend-framework,Zend Framework,在index.php中 $captcha = new Zend_Captcha_Image(array( 'font' => BASE_PATH .'/fonts/Average-Regular.ttf' )); $captchaId = $captcha->generate(); 错误: 警告:imagepng():无法打开 “./images/captcha/564749fc943b090f6d3823071ae1538.png”用于书写: 中没有这样的文件或目录 /v

在index.php中

$captcha = new Zend_Captcha_Image(array(
    'font' => BASE_PATH .'/fonts/Average-Regular.ttf'
));
$captchaId = $captcha->generate();
错误:

警告:imagepng():无法打开 “./images/captcha/564749fc943b090f6d3823071ae1538.png”用于书写: 中没有这样的文件或目录 /var/www/html/workbench/zend/library/zend/Captcha/Image.php在线 563

试试这个

// 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'));
您需要定义用于存储验证码图像的图像目录


有关更多信息,请查看您字体的文档。“.”将指向保存模块目录的Zend目录。例如,如果您创建一个新目录,如ZendskeletonApp master/data/fonts,并将字体文件放入ZendskeletonApp master/data/fonts/aril.ttf,则您可以启动验证码,如下所示:

$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();

但是,您可以在索引页中定义一个常数,该常数指向您选择的目录并使用它。

存储字体的目录路径是什么?它位于根文件夹“/fonts/Average Regular”中。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();