as2/flash::如何通过PHP强制下载文件
我试图通过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
$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()