Cakephp:将图像保存在文件夹中并引用到数据库


Cakephp : save image in folder nd refernce to db

我正在开发Cakephp2.x…嗯,我对Cakephp很陌生,从未保存过媒体文件,例如音乐、图像。。即使不是在简单的php中。。。所以问题是我正在把图片从我的android应用程序发送到我的web应用程序。。。我想把这些图像存储在一些私人文件夹中,而不是每个人都可以访问的。。所以我的意思是我不想把图片存储在webroot中。。然后想要将引用存储在数据库中。。。所以我想知道的第一件事是,将图像存储在cakepp中的标准方法是什么。。。我应该在哪里创建一个图像文件夹。。。以及如何给出这条路。。。总之,如果有人已经实现了这一点或有代码,请分享。。。

现在写我正在从安卓应用程序获取数据,就像这个

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()){

   // 
       }
        }

好吧,我想提的一件事是,请不要把我指给一些插件或组件,因为我认为第三方插件或组件会让应用程序更慢。。所以,但如果没有任何方法,那么共享

因为我认为第三方插件或组件会使应用程序的速度变慢

为什么?如果你得到了糟糕的代码,这可能是真的,但作为一名程序员,你应该能够通过分析代码来审查、测试甚至衡量代码的性能,如果需要的话,可以找到瓶颈。并决定代码是否可以使用。是什么插件减缓了你的应用程序的速度?

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

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

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

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

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

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