【问题标题】:Cakephp : save image in folder nd refernce to dbCakephp:将图像保存在文件夹中并引用数据库
【发布时间】:2013-07-16 17:28:20
【问题描述】:

我正在开发 Cakephp 2.x ...好吧,我是 cakephp 新手,从来没有保存媒体文件,例如音乐、图像 .. 甚至不是简单的 php ...所以问题是我将图像从我的 android 应用程序发送到我的网络应用程序...我想将这些图像存储在每个人都无法访问的私有文件夹中..所以我的意思是我不想将图像存储在 webroot 中..然后想将参考存储在数据库中...所以我想知道的第一件事是将图像存储在 cakephp 中的标准方法是什么...我应该在哪里创建图像文件夹...以及如何提供那的路径...简而言之,如果有人实现了这个或有代码,那么请分享...

现在写我正在从一个 android 应用程序获取数据是这样的

public  function mobileNo(){
       if ($this->request->isPost()){

        $json = $this->request->data('json');
        $data = json_decode($json, TRUE);
        $this->request->data['Calllog']['mobileNo'] = $datas['mobileNo'];
              $this->Calllog->save($this->request->data);
          }

 }

     public function images(){
      if ($this->request->isPost()){



   // 
       }
        }

我想提一件事,请不要向我推荐某些插件或组件,因为我认为第三方插件或组件会使应用程序变慢.. 所以但如果没有任何方法,请分享它

【问题讨论】:

  • 显示你的请求数据的 debug() 输出。

标签: php android cakephp cakephp-2.0 cakephp-2.1


【解决方案1】:

因为第三方插件或组件会使应用变慢

为什么?如果您编写的代码很糟糕,这可能是真的,但作为一名程序员,您应该能够通过分析代码来查看、测试甚至测量代码的性能(如果需要的话)以找到瓶颈。并决定代码是否可以使用。哪个插件让您的应用变慢了?

您提供的截图无法回答您的问题,它没有显示应用程序如何接收文件数据。 它是否显示为 php 中的常规文件上传?是否可能以某种方式在字段中编码二进制数据?此外,恕我直言,在合理的文字和时间范围内无法真正回答这个问题。

您已经说过不想使用第 3 方代码,但更愿意重新发明轮子,并且希望保留对数据库的引用。好吧,那就去做吧,你已经说了一切,所以实施它。如果您重新考虑使用第 3 方代码,请继续阅读。

关于问题的 CakePHP 方面,遗憾的是,CakePHP 不知道用于上传的标准文件夹或附带处理文件上传的代码。它也没有一个好的存储系统,所以I've written a plugin(性能很好,一个知名品牌正在使用它)。我花了一些时间来构建它,目标是为 CakePHP 创建最灵活的文件存储系统。它将每个文件作为一个单独的实体(数据库记录)处理,可以通过 CakePHP 模型的关联与所有内容相关联。

我看到很多项目在我看来通过存储文件信息做得不好,主要是表中的路径+文件名和直接相关的记录。但是文件本身就代表了一个实体,并且有更多重要的元数据(mime 类型、文件大小......)。

该插件无需进一步配置即可将文件(如果您使用本地文件系统)存储在 APP/tmp/ 中,因为这是在正确配置的应用程序设置中唯一可写的文件夹。我通常在应用程序内创建一个 FileStorage 文件夹,将所有文件上传到该文件夹​​。然后我将应该公开的文件夹符号链接到 webroot/。但该插件还支持 S3 和其他存储系统。

要从本地服务器下载文件,请使用MediaView 从不可公开访问的文件夹中通过 php 传递文件。

【讨论】:

猜你喜欢
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多