2010-10-29 166 views
1

我试图通过ajax请求下载文件。 我有下面的代码在我的PHP文件下载中心通过ajax请求下载PHP文件

$filedata="File data here" 
header("Content-type: application/octet-stream"); 
header("Content-Disposition:attachment; filename=report.txt"); 
header('Content-Transfer-Encoding: binary'); 
header("Pragma: public"); 
header("Expires: 0"); 
echo $filedata; 

它给我Ajax响应但不提供文件下载对话框。有什么解决方案? 在此先感谢。

回答

1

我认为ajax阻止了这个请求。

由于它从服务器读取的ajax可能不会触发文件保存对话框。

+0

是的。它不会触发保存对话框。是否有其他解决方案来显示保存对话框? – Rahul 2010-10-29 14:34:10

+0

请勿使用AJAX请求。只需直接指向url的URL(document.location)(用于GET请求)或构建一个隐藏表单并提交POST请求。 – 2010-10-29 15:37:41

+1

或者对于文件下载,只需添加一个链接。如果浏览器获取内容,则它通常不会更改页面,而只是下载文件并保存,保留在当前页面上。如果您想确定,请将target =“_ BLANK”添加到标签中,并将其下载到新的浏览器窗口中。 – 2010-10-29 19:12:44