4

社内でオープンソースの PHP/MySQL ベースのソフトウェア ソリューションをセットアップしたところ、ほぼすべてが思い通りに動作しましたが、ファイルのアップロードは望んでいたものではありません。現在、「アップロード」を処理する唯一の方法は、リモート URL を保存/表示することですが、物事を内部に保つ必要があります。

アップロードされたユーザー ファイルの保存方法に関するベスト プラクティスはありますか? ファイル システムまたはデータベースに格納する必要がありますか? 各アプローチの長所と短所は何ですか? すでに PHP と MySQL を使用していることを考えると、実装が簡単ですか? より良いハイブリッドアプローチはありますか?

4

1 に答える 1

7

私が通常行うことの大まかな概要:

  1. ファイル自体をデータベースではなく、ファイル システムに格納します。データベースはデータを保存するのが得意で、ファイル システムはファイルを保存するのが得意です。たとえ別の方法で行うことができたとしても、それぞれが得意なことに使用することをお勧めします (私の意見)。

  2. Web ルートの外にファイルを保存します。これにより、それらへのアクセスをより簡単に制御できるようになります。

  3. これらは Web ルートの外にあるため、ファイルに直接リンクすることはできません。そのため、ファイル自体を提供するスクリプトを作成します。データベースからスクリプトに何らかのファイル識別子を渡すと、スクリプトはデータベース内のファイルへの実際のパスを検索し、ファイルの内容を提供します。スクリプトは、必要に応じてユーザー アクセス チェックを実行することもできます。

于 2012-12-26T14:35:19.150 に答える