1

PHPを使用してサーバー上の一時的な場所にファイルを書き込まずに、ダウンロードが要求されたときにファイルに数バイトを追加することは可能ですか?

たとえば、"originaltext" という内容のファイル somefile.txt を考えてみましょう。ファイルのダウンロードが要求された場合、ダウンロードされるファイルの内容は「prependedtext_originaltext」です。

サーバー上にファイルの一時コピーを作成せずにこれを実現したいと考えています。これは、このファイルが非常に大きくなる可能性が高く、多数のユーザーがファイルを要求するとサーバーのスペースが急速にいっぱいになるためです。

ありがとう

4

1 に答える 1

3

もちろん可能です。

これは、ファイルの提供方法によって異なります。ファイルに直接リンクする場合は、Web サーバーで書き換えルールを作成する必要があります。これにより、要求されたファイルが PHP スクリプトに渡されます [1]。スクリプトは、ファイルの内容とともに「prependtext」を出力します。適切な HTTP ヘッダーを追加することを忘れないでください[2]!

すでに PHP スクリプトを使用してファイルを提供している場合は、ファイルの内容を出力する前に「prependtext」を出力する必要があります。

備考:

[1] 大きなファイルでメモリを効率的に使用するには、次を使用します。readfile()

[2] テキスト ファイルの場合、最も重要なヘッダーは(およびContent-type: text/plainのドキュメントも参照)header()readfile()

于 2013-01-24T11:31:55.063 に答える