是否可以在请求下载文件时在文件中添加一些字节,而无需使用 PHP 在服务器上的临时位置写入文件。
例如,考虑一个内容为“originaltext”的文件 somefile.txt。如果请求下载文件,则下载的文件的内容为“prependedtext_originaltext”
我希望无需在服务器上创建文件的临时副本即可实现此目的,因为该文件可能非常大,并且如果大量用户请求该文件,服务器空间将迅速填满。
谢谢
当然,这是可能的。
现在这取决于您提供文件的方式。如果您直接链接到文件,则必须在您的 Web 服务器中创建一个重写规则,这会将请求的文件传递给您的 PHP 脚本[1]。然后,该脚本将输出您的“prependtext”以及文件的内容。不要忘记添加适当的 HTTP 标头[2]!
如果您已经通过 PHP 脚本提供文件,那么您只需要在输出文件内容之前输出您的“前置文本”。
评论:
[1] 要对大文件提高内存效率,请使用readfile()
[2] 对于文本文件,最重要的标题是Content-type: text/plain
(另见header()
和的文档readfile()
)