私が知る必要があるのは、パスに保存されているファイルをダウンロードする方法です。内容をDBに保存する必要がありますか?別のサイトを参照すると、 file_get_contentメソッドを使用してファイルのコンテンツがdbに保存され、それを介してファイルがダウンロードされるという解決策が得られました。別の方法はありますか?メソッドを使用せずに確認しましたが、ダウンロードしても内容が表示されません。
2 に答える
ファイルがサーバー上にあると、「ダウンロード」と言うのをやめることができます。適切な用語は、「ファイルを読み取る」ことです。
正直なところ、file_get_contents()
ファイル全体を変数に読み込んでからそれを処理する必要がある場合は、これが最適なオプションです。これはローカルファイルで使用することを目的としていますが、リモートファイルを取得するためにも使用するのが好きです。[それらの人々は私見が間違っています。:P]
あなたが何か他のものを使うことに地獄に傾いているなら、常にfread()
、またはでループを使うことがありますfgets()
。
実際には2つのオプションがあります。
1.ファイルをデータベースに保存する
これを行うには、ファイルの内容をメモリに読み込んでからデータベースに保存する必要があります。file_get_contents()
データベースに保存するためにファイルを読み取るための論理的な選択です。
長所:簡単です。短所:データセットが大きくなると、パフォーマンスと管理性が低下します。
推奨:小さなファイル&&
のsimpelプロジェクト。
2.ファイルをディスク
に保存する別のオプションは、ファイルをディスクに保存し、ファイルへのパスをデータベースに保存することです。ディスクからファイルを取得してクライアントに送信するための最良の方法はreadfile()
、;です。ディスクから読み取り、コンテンツをブラウザに直接ストリーミングします。
長所:スケーラビリティが向上します(すべての大規模なWebサイトがこの方法を使用します)。短所:より複雑。
推奨:大きなファイル||
大きなプロジェクト。