Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 3:从同一文件夹中包含的另一个文件读取img文件夹中的文件_Php_Cakephp_Routing_Gd - Fatal编程技术网

Cakephp 3:从同一文件夹中包含的另一个文件读取img文件夹中的文件

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

我正在使用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
图像位于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”>

此解决方案适合我。

我尝试过相对路径,但不起作用。我试着把它移到控制器上我试过相对路径,但不起作用。我将尝试将其移动到控制器