所以我正在使用我在互联网上找到的解决方案发送文件,它实际上正在工作! 但我真的不明白为什么:(
在我的解决方案中,我正在生成CSV(测试;测试;测试;测试;测试)。
所以我告诉我的标题它是一个csv文件,它也应该是一个附件:
<?php
$nom = time().'.csv';
header('Content-type: text/csv');
header('Content-disposition: attachment;filename='.$nom);
?>
我理解这一点,这很简单,但是当涉及到:
flush();
readfile($nom);
我明白了flush();正在向客户端传递缓冲区吗? 但为什么是readfile();必要吗? 我的意思是,如果发送内容,为什么我会再次阅读该文件?
答案 0 :(得分:1)
readfile($nom);
实际上正在读取您的文件并回显它,因此客户端可以接收数据。没有它,csv输出将为空。
flush()
只是确保在输出写入开始之前清空输出缓冲区。我认为此时甚至都不需要。它只是确保你用readfile
写入的输出缓冲区在执行此操作时为空。