在我正在开发的Web服务上,用户应该能够在HTML文件中下载他的数据。这个文件包含所有内容(包括base64的图像)。
现在,为了让用户下载这个,我必须创建文件并将其保存在我的Web服务器上。之后,我不得不使用cronjob删除它,因为我不知道下载何时完成。
还有别的办法吗?是否可以将一个文件下载给用户,该文件在我的网络服务器上并不存在,但以某种方式临时创建?
谢谢你的帮助!
就WWW而言,没有文件这样的东西。只有HTTP资源。
服务器可能会从文件中获取数据,但可能不会。
只需从PHP程序中输出文件的数据。(即,通过将其置于<?php
和?>
之外,或使用echo
或任何其他导致PHP输出某些内容的技术)。
您需要确保使用正确的Content-Type
标头,但由于您使用的是HTML,因此默认值为text/html
。
如果希望提示用户将下载保存到某个位置,而不是在浏览器窗口中呈现下载的HTML,则可以添加Content-Disposition
标头。
header("Content-Disposition: attachment; filename='foo.html'");
<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
?>
发件人:http://php.net/manual/en/function.header.php