0

私はCakephp 2.xに取り組んでいます...まあ、私はcakephpに不慣れで、音楽、画像などのメディアファイルの保存に取り組んだことはありません..単純なphpでさえありません...だから問題は私がから画像を送信していることです私のAndroidアプリを私のWebアプリに...これらの画像を、誰もがアクセスできないプライベートフォルダーに保存したい..つまり、画像をwebrootに保存したくない..そして保存したいデータベース内の参照...最初に知りたいのは、画像をcakephpに保存する標準的な方法は何ですか...画像のフォルダーをどこに作成すればよいですか...そしてのパスを与える方法つまり...要するに、誰かがこれを実装したか、コードを持っている場合は、共有してください...

今書いて、私はアンドロイドアプリからデータを取得しています

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で通常のファイルアップロードとして表示されますか? フィールド内の何らかの方法でエンコードされたバイナリデータですか?さらに、私見の合理的な量のテキストと時間内に質問に実際に回答することはできません。

サードパーティのコードを使用したくないが、車輪を再発明することを好み、DB への参照を保持したいと既に述べています。では、あなたはすでにすべてを言ったので、それを実行してください。サードパーティのコードの使用を再考する場合は、読み続けてください。

質問の CakePHP 側については、悲しいことに、CakePHP はアップロード用の標準フォルダーを認識していないか、ファイルのアップロードを処理するコードが付属しています。どちらも優れたストレージ システムを備えていないため、プラグインを作成しました(これは正常に動作し、よく知られているブランドが使用しています)。私は、CakePHP 用の最も柔軟なファイル ストレージ システムを作成することを目標に、これを構築するのに時間を費やしました。各ファイルを別のエンティティ (DB レコード) として処理し、CakePHP モデルの関連付けを通じてすべてに関連付けることができます。

私の意見では、ファイル情報を保存することで悪い仕事をした多くのプロジェクトを見てきました。ほとんどの場合、テーブル内のパス + ファイル名と直接関連するレコードのみです。ただし、ファイルはそれ自体でエンティティを表し、重要なメタデータがもう少しあります (MIME タイプ、ファイルサイズなど)。

プラグインは、追加の構成なしでファイルを APP/tmp/ に保存します (ローカル ファイルシステムを使用する場合)。私は通常、アプリ内にすべてのファイルがアップロードされる FileStorage フォルダーを作成します。次に、公開するフォルダーを webroot/ にシンボリック リンクします。ただし、プラグインは S3 やその他のストレージ システムもサポートしています。

ローカル サーバーからファイルをダウンロードするには、MediaViewを使用して、公開されていないフォルダーから php を介してファイルを渡します。

于 2013-07-16T22:21:40.590 に答える