在下载之前将字节前置到文件

时间:2013-01-24 11:27:24

标签: php file-io

当请求下载时,是否可以在文件中添加一些字节而无需使用PHP在服务器上将文件写入临时位置。

例如,考虑一个文件somefile.txt,其内容为“originaltext”。如果请求下载文件,则下载的文件的内容为“prependedtext_originaltext”

我希望在不在服务器上创建文件的临时副本的情况下实现此目的,因为如果大量用户请求该文件,该文件可能非常大并且服务器空间会迅速填满。

由于

1 个答案:

答案 0 :(得分:3)

当然可以。

现在这取决于您如何提供文件。如果直接链接到文件,则必须在Web服务器中创建重写规则,这会将请求的文件传递给PHP脚本[1]。然后,该脚本将输出您的“prependtext”以及该文件的内容。不要忘记添加适当的HTTP标头[2]!

如果您已经通过PHP脚本提供文件,那么您需要在输出文件内容之前输出“prependtext”。

<强>说明:

[1]为了使用大文件实现内存效率,请使用readfile()

[2]对于文本文件,最重要的标题是Content-type: text/plain(另请参阅header()readfile()的文档)