Cakephp 3:从同一文件夹中包含的另一个文件读取img文件夹中的文件
我正在使用gd库创建图像。Cakephp 3:从同一文件夹中包含的另一个文件读取img文件夹中的文件,php,cakephp,routing,gd,Php,Cakephp,Routing,Gd,我正在使用gd库创建图像。 脚本创建图像对象,然后打开logo.png图像并将其粘贴到$image中 $image = ImageCreate(192,64); $myFile = imagecreatefrompng('logo.png'); imagecopy($image,$myFile,0,0,0,0,64,64); ImageDestroy($myFile); 此脚本在另一个应用程序(没有框架)中运行良好,但在CakePHP 3中,它不起作用。 脚本和logo.png图像位于Cake
脚本创建图像对象,然后打开
logo.png
图像并将其粘贴到$image
中
$image = ImageCreate(192,64);
$myFile = imagecreatefrompng('logo.png');
imagecopy($image,$myFile,0,0,0,0,64,64);
ImageDestroy($myFile);
此脚本在另一个应用程序(没有框架)中运行良好,但在CakePHP 3中,它不起作用。脚本和
logo.png
图像位于CakePHP的webroot/img
文件夹中
从视图(模板)以这种方式调用脚本:
脚本崩溃,没有错误消息。(Firefox表示图像文件已损坏,无法显示。)
当行$myFile=imagecreatefrompng('logo.png')时崩溃代码>未被注释。
是否有特殊的路由设置,允许img文件夹中的脚本访问img文件夹中的文件?图像路径与包含代码的文件相对。如果脚本位于weboroot/img/kana
中,但图像位于webroot/img
中的目录中,则无法找到它
您可以指定一个相对路径:
$myFile = imagecreatefrompng('../logo.png');
仅供参考,如果它曾经移动到CakePHP控制器,请使用config/path.php
中定义的常量:
$image = ImageCreate(192,64);
$myFile = imagecreatefrompng( WWW_ROOT.'/img/bricks.png');
imagecopy($image,$myFile,0,0,0,0,64,64);
ImageDestroy($myFile);
图像路径与包含代码的文件相对。如果脚本位于weboroot/img/kana
中,但图像位于webroot/img
中的目录中,则无法找到它
您可以指定一个相对路径:
$myFile = imagecreatefrompng('../logo.png');
仅供参考,如果它曾经移动到CakePHP控制器,请使用config/path.php
中定义的常量:
$image = ImageCreate(192,64);
$myFile = imagecreatefrompng( WWW_ROOT.'/img/bricks.png');
imagecopy($image,$myFile,0,0,0,0,64,64);
ImageDestroy($myFile);
@阿霍夫纳:如果我在控制器里做的话,它会工作的。以下是我添加到控制器的代码:
function displaylogo() {
$image = ImageCreate(192,64);
$myFile = imagecreatefrompng(WWW_ROOT.'img/logo.png');
imagecopy($image,$myFile,0,0,0,0,64,64);
ImageDestroy($myFile);
ImagePng ($image);
$this->autoRender = false;
$this->response->header('Content-Type: image/png');
$this->response->type('png');
$this->response->body($image);
}
并且认为:
<img src="/cake/<MyController>/displaylogo">
/displaylogo”>
此解决方案适合我。@ahoffner:如果我在控制器中执行此操作,它就会工作。以下是我添加到控制器的代码:
function displaylogo() {
$image = ImageCreate(192,64);
$myFile = imagecreatefrompng(WWW_ROOT.'img/logo.png');
imagecopy($image,$myFile,0,0,0,0,64,64);
ImageDestroy($myFile);
ImagePng ($image);
$this->autoRender = false;
$this->response->header('Content-Type: image/png');
$this->response->type('png');
$this->response->body($image);
}
并且认为:
<img src="/cake/<MyController>/displaylogo">
/displaylogo”>
此解决方案适合我。我尝试过相对路径,但不起作用。我试着把它移到控制器上我试过相对路径,但不起作用。我将尝试将其移动到控制器