0

我正在开发 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()){



   // 
       }
        }

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

4

1 回答 1

1

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

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

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

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

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

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

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

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

于 2013-07-16T22:21:40.590 回答