gpt4 book ai didi

cakephp-2.1 - CakePHP - 需要 URL 来路由到 tmp 目录?

转载 作者:行者123 更新时间:2023-12-01 12:47:39 24 4
gpt4 key购买 nike

我正在尝试使用 Cake PHP 中的 GD 库创建缩略图。

我可以将调整后的缩略图写入 tmp 目录,并创建合理的 URL 来显示 tmp 目录中的图像:

//set up empty GD resource  
$tmp = imagecreatetruecolor(200*$iw/$ih, 200);
//create thumbnail image in the empty GD resource
imagecopyresampled($tmp, $src, 0, 0, 0, 0,200*$iw/$ih, 200, $iw, $ih);
//build full path to thumbnail in the cakephp tmp directory
$thumbfile = APP.'tmp/thumb.jpg';
//build URL path to the same thumbnail
$thumblink = $this->webroot.'tmp/thumb.jpg';
//write jpeg to the tmp directory
$return=imagejpeg($tmp,$thumbfile);
//write out the image to client browser
echo "<img=\"$thumblink\" alt=\"thumb\" height=\"200\" width=\"200*$iw/$ih\">";

缩略图已创建并写入 tmp 目录,但当我尝试访问该 URL 时,我收到以下错误消息:

Error: TmpController could not be found.
Error: Create the class TmpController below in file: app/Controller/TmpController.php

显然我有一个路由错误——Cake 尝试调用 tmp Controller ,而不是在 tmp 目录中查找。我该如何解决这个问题,或者是否有其他方法可以使用 GD lib 提供临时缩略图?我计划为每个 session 或用户创建唯一的缩略图,但我需要先让它工作。

Config/routes.php 中的路由:

Router::connect('/', array('controller' => 'MsCake', 'action' => 'index'));
Router::connect('/pages/*', array('controller' => 'pages'));
CakePlugin::routes();

我查看了 ThumbnailHelper,但它没有使用 GD Lib。我还需要能够从外部访问存储在非 Apache 可访问目录中的文件,但我什至无法访问任何临时符号链接(symbolic link)来访问它们。例如。

  • 在 tmp 目录中创建一个临时符号链接(symbolic link),指向有问题的文件。
  • 创建一个 HTML 链接,使用 $this->webroot.'tmp/link-to-myfile' 指向符号链接(symbolic link),如上所述

...我得到与上述相同的错误 - 错误:找不到 TmpController。

最佳答案

不要那样做

如果您采取任何措施使 tmp 目录中的文件可通过网络访问 - 您将严重降低您网站的安全性。 tmp 目录中的内容永远不应该是 Web 可访问的。

将你的图片放在 webroot 中

一个更好的主意是将您的临时图像放在 webroot 目录中 - 这是通常可以通过网络访问的唯一目录。例如:

$filename = md5($userId);
$thumbfile = APP.'webroot/img/cache/' . $filename . '.jpg';

...
$url = '/img/cache/' . $filename . '.jpg';

或者路由到 Controller Action

或者,路由到 Controller 操作以使用 media view class 处理请求.但是请注意,使用 php 提供图像不是免费的——在处理您的请求时可能会有明显的延迟——指向静态文件没有这种成本/风险,因为它只是网络服务器负责提供服务内容。

关于cakephp-2.1 - CakePHP - 需要 URL 来路由到 tmp 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14425038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com