Cakephp:将文件保存在文件夹中并引用db

时间:2013-07-16 17:28:21

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

我正在开发一个Cakephp 2.x ......好吧我对cakephp很新,并且从未努力保存媒体文件,例如音乐,图像..甚至不是简单的PHP ...所以问题是我是从我的Android应用程序发送图像到我的网络应用程序...我想将这些图像存储在一些人人无法访问的私人文件夹中..所以我的意思是我不想将图像存储在webroot ..然后想要在db中存储引用...所以我想知道的第一件事是在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()){



   // 
       }
        }

有一件事我想提一下,请不要把我推荐给一些插件或组件,因为我的东西第三方插件或组件使应用程序更慢..所以但如果没有任何方式然后分享它

1 个答案:

答案 0 :(得分:1)

  

因为我的第三方插件或组件让app变得更慢

为什么呢?如果你得到糟糕的编写代码,这可能是真的,但作为程序员,如果需要找到瓶颈,你应该能够通过分析来检查,测试甚至测量代码的性能。如果代码可以使用或不使用,请做出决定。什么插件减慢了你的应用程序?

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

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

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

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

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

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