Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中动态创建和下载文件_Php_Header - Fatal编程技术网

在php中动态创建和下载文件

在php中动态创建和下载文件,php,header,Php,Header,我正在动态创建一个Excel文件(数据来自数据库)。在调用URL时,它工作正常,显示下载对话框。但是,每当我使用CURl函数调用这个URL时,我都希望动态地将这个文件保存在一个文件夹中(即在我的服务器硬盘中)。 如何设置标题,使其创建Excel文件并将其保存在文件夹中。 我正在使用的头代码 <?php $name = "myFile"; $file_ending = "xls"; header("Content-type: application/octet-stream

我正在动态创建一个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服务器调度程序将调用此函数。

您无法通过设置标题将某些内容保存在特定路径中。HTTP头专门帮助通过HTTP网络连接传输数据,而HTTP网络连接对文件系统一无所知

也许你只是想这样做


通过设置标题,您无法在某些特定路径中保存某些内容。HTTP头专门帮助通过HTTP网络连接传输数据,而HTTP网络连接对文件系统一无所知

也许你只是想这样做

很容易

创建一个空目录,比如说称之为“下载”

在“downloads”目录中创建一个.htaccess文件,其中包含以下内容

Options +SymLinksIfOwnerMatch
IndexIgnore */*
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . dummy.php
在“downloads”目录中创建一个名为dummy.php的文件

<?php
  param = $_Get["param"];
  echo "The file contents, echo anything you want"
?>

通过保持目录为空,每当它找不到文件时,就会调用dummy.php

<?php
  param = $_Get["param"];
  echo "The file contents, echo anything you want"
?>
您希望用户下载的任何文件,请指向/downloads/Any_madeup_filename

这很简单

创建一个空目录,比如说称之为“下载”

在“downloads”目录中创建一个.htaccess文件,其中包含以下内容

Options +SymLinksIfOwnerMatch
IndexIgnore */*
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . dummy.php
在“downloads”目录中创建一个名为dummy.php的文件

<?php
  param = $_Get["param"];
  echo "The file contents, echo anything you want"
?>

通过保持目录为空,每当它找不到文件时,就会调用dummy.php

<?php
  param = $_Get["param"];
  echo "The file contents, echo anything you want"
?>

您希望用户下载的任何文件,请指向/downloads/Any_madeup_filename

是的,这很有效,谢谢,我完全走错了方向:)是的,这很有效,谢谢,我完全走错了方向