Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
as2/flash::如何通过PHP强制下载文件_Php_File_Header_Download_Actionscript 2 - Fatal编程技术网

as2/flash::如何通过PHP强制下载文件

as2/flash::如何通过PHP强制下载文件,php,file,header,download,actionscript-2,Php,File,Header,Download,Actionscript 2,我试图通过PHP强制下载一个文件 $ctype="application/zip"; header("Content-Type: $ctype"); header("Content-Length: ".filesize($filepath)); header("Expires: 0"); header("Content-Transfer-Encoding: binary"); header("Cache-Control: must-revalidate, post-check=0, pre-ch

我试图通过PHP强制下载一个文件

$ctype="application/zip";
header("Content-Type: $ctype");
header("Content-Length: ".filesize($filepath));
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");  //header("Cache-Control: public"); 
header("Pragma: public");
header("Content-Disposition: attachment; filename=".$filename);
// header("Location: $filepath"); // edited: removed
readfile($filepath);
但它不起作用

使用firebug,我可以看到更改的标题信息,但不会显示“保存文件”对话框…

您需要删除

header("Location: $filepath");
这基本上是将您重定向到特定路径,而不是读取其内容。

您需要删除

header("Location: $filepath");

这基本上是将您重定向到特定路径,而不是读取其内容。

sendAndLoad()
将“吃掉”您的响应,而不会导致下载,这在您尝试加载数据时非常有用。但是,在您的情况下,您需要使用
getURL()
,因为您希望浏览器处理响应,而不是flash

sendAndLoad()
将“吃掉”您的响应,而不会导致下载,这在您尝试加载数据时非常有用。但是,在您的情况下,您需要使用
getURL()
,因为您希望浏览器处理响应,而不是flash

尽管你的回答是对的,自然人。我已经编辑了这个问题。尽管你的回答有点正确,naturellemente。我已经编辑了这个问题。你能在flash中发布你用来开始下载的代码吗?我怀疑这里可能有问题。我只是将一些数据发送到一个PHP文件,该文件要求在mysql数据库中获得一些权限。然后必须开始下载。如果我告诉这个php文件中的flash文件调用另一个带有php代码的页面(_parent-window)来开始下载,它就会工作。但是如果我让第一个php代码开始下载,它就不起作用了。我认为它必须是某种预先发送的信息,在发送标题之前,稍后会破坏标题的纯度…我想知道的是,您是否使用navigateToURL或URLLoader。A后者不会开始下载,Flash只会吃掉这些数据。好的,我明白了。不,我使用myData=new LoadVars()/myData.sendAndLoad()/post然后您必须使用as2而不是as3,sendAndLoad也会“吃掉”您的响应,而不会导致下载。你需要使用getURL()你能在flash中发布你用来开始下载的代码吗?我怀疑这里可能有问题。我只是将一些数据发送到一个PHP文件,该文件要求在mysql数据库中获得一些权限。然后必须开始下载。如果我告诉这个php文件中的flash文件调用另一个带有php代码的页面(_parent-window)来开始下载,它就会工作。但是如果我让第一个php代码开始下载,它就不起作用了。我认为它必须是某种预先发送的信息,在发送标题之前,稍后会破坏标题的纯度…我想知道的是,您是否使用navigateToURL或URLLoader。A后者不会开始下载,Flash只会吃掉这些数据。好的,我明白了。不,我使用myData=new LoadVars()/myData.sendAndLoad()/post然后您必须使用as2而不是as3,sendAndLoad也会“吃掉”您的响应,而不会导致下载。您需要使用getURL()