我正在动态创建一个Excel文件(来自数据库的数据)。在调用URL时它工作正常,它显示下载对话框。但是每当我使用CURl函数调用此URL时,我想动态地将此文件保存在文件夹中(即在我的服务器硬盘中)。 如何设置标题,以便创建Excel文件并将其保存在文件夹中。 我正在使用的标题代码,
<?php
$name = "myFile";
$file_ending = "xls";
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename={$name}.{$file_ending}");
header("Pragma: no-cache");
header("Expires: 0");
echo "the data...";
?>
还是有其他方法可以这样做。 注意 - 我想这样,因为,这个功能将由Web服务器调度程序调用。
答案 0 :(得分:4)
您无法通过设置标题来保存某些特定路径中的内容。 HTTP标头专门用于帮助跨HTTP网络连接传输数据,该网络连接对文件系统一无所知。
也许你只想要write the data into a file而不是?
file_put_contents('file.xls', "the data...");
答案 1 :(得分:0)
很容易
创建一个空目录,让我们称之为“下载”
使用以下
在“downloads”目录中创建.htaccess文件Options +SymLinksIfOwnerMatch
IndexIgnore */*
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . dummy.php
在名为dummy.php的“downloads”目录中创建一个文件
<?php
param = $_Get["param"];
echo "The file contents, echo anything you want"
?>
通过保持目录为空,每次找不到文件时,都会调用dummy.php
您希望用户下载的任何文件,请将它们指向/ downloads / any_madeup_filename