1

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

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

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

谢谢

4

1 回答 1

3

当然,这是可能的。

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

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

评论:

[1] 要对大文件提高内存效率,请使用readfile()

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

于 2013-01-24T11:31:55.063 回答