2014-09-24 135 views
0

我有我的文件generate_xls.php并正在创建一个文件.xls并希望将其保存在一个文件夹中。现在要做的是下载文件。我有以下几点:创建xls文件并保存到文件夹

header("Content-type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment;Filename=ocorrencias.xls"); 

echo "write in file xls"; 

正在创建的文件了,但我要的是一个文件夹中的文件保存在我的服务器,而不是下载。 header有什么变化吗?

+1

为什么不直接从php写入并保存文件?即使用'file_put_contents('file.xls',$ data)'。除非要下载文件,否则不需要发送标题。 – 2014-09-24 15:48:37

+0

@ialarmedalien,这会擦除我们已有的内容并将其插入? – 2014-09-24 15:51:48

+0

如果你已经有'file.xls',是的,但是如果你不想覆盖现有的文件,你会做某种检查并调用你的文件。 – 2014-09-24 15:54:07

回答

1

HTTP标头是通过网络进行通信时发送的HTTP请求和响应的一部分。他们掌握有关客户端,服务器,发送信息等的信息。

如果脚本创建文件并将其发送给客户端,脚本应创建相应的标题以通知客户端文件类型是(Content-type: application/vnd.ms-excel),是直接下载(Content-Disposition: attachment)还是查看它在网页浏览器等等。

如果脚本创建一个文件并将其保存到服务器(例如使用file_put_contents($file_name, $data)),则不需要设置标头,因为该文件未通过网络发送。如果有人随后想要下载该文件,例如使用FTP客户端或使用其他脚本,服务器上的脚本或FTP程序将在发生传输时设置适当的标头。

相关问题