【问题标题】:Cakephp read image from app/uploads directoryCakephp 从 app/uploads 目录读取图像
【发布时间】:2016-02-04 16:50:09
【问题描述】:

我正在将图像从我的移动应用程序发送到服务器。

我将图像保存在目录中

app/uploads/image.png

并将路径存储在数据库中。

我想知道如何从浏览器访问此图像。简而言之,这张图片的 URL 是什么?我想先在浏览器中检查,然后再将路径发送到我的移动应用程序

【问题讨论】:

  • 我们无法为隐形代码提供太多帮助...
  • 将图片存储在app/webroot目录中
  • 您在 webroot 之外上传图片有什么原因吗?如果您将它们放在 webroot 之外,您将需要编写代码以将它们提供给用户,如果您不需要执行任何特殊操作(例如控制访问权限),这可能是矫枉过正。

标签: php cakephp cakephp-2.3 cakephp-2.x


【解决方案1】:

暂不讨论所提议的方法是否正确,我将专注于为所提出的问题提供解决方案。

事实上,这很容易。将以下内容添加到您的控制器之一:

public function download($filename){

    $file = APP."/uploads/{$filename}";
    $this->response->file($file);
    return $this->response;
}

注意:上面的代码缺少错误处理。

然后就可以访问了

http://www.example.com/my_controller/download/my_picture.jpg

【讨论】:

  • 你能告诉我什么是好的方法吗?我正在处理用户个人图片、图库和其他内容
  • 对于 cmets 中已经提到的内容,恐怕我没有太多要补充的。可能您有充分的理由不将文件存储在/app/webroot/ 下。上面的代码应该可以工作。不确定它是否会使您的应用程序面临安全漏洞(例如尝试从其他文件夹中检索文件等)。只需确保删除恶意用户可能试图包含在 $filename 中的任何路径信息(我不知道是否存在此类风险)。
【解决方案2】:
$this->Html->image('/uploads/image.png');

【讨论】:

  • 你可以用这段代码从app/web-root/的上传文件夹中获取图片
猜你喜欢
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
相关资源
最近更新 更多