2013-07-16 305 views
0

我给PDF的确切文件路径,PDF也下载没有任何中断。但在退出后退出时退出。 PDF不下载没有发生。退出功能后我正在做一些处理。PHP客户端浏览器下载

header('Content-Description: File Transfer'); 
header('Content-type: application/pdf'); 
header('Content-Disposition: attachment; filename='.$pdf_filename); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
ob_clean(); 
readfile($file); 
session_regenerate_id(); 
exit; 
+2

你不能重新生成这样的id。它通过重新设置会话ID cookie来工作,并且在执行输出后,您不能发出新的cookie头,这是readfile()正在执行的操作。 –

+0

实际上我想在流程中添加此下载。下载后,我将取消链接tmp文件和一些sql更新过程。所以在这里如何实现我的目标。 – Bharanikumar

+0

没关系。 sess_regen_id使用header()将新ID发送给用户,并且在执行输出后这不起作用。 –

回答

0

我相信下面的代码会为你工作,但首先删除退出,然后刷新输出结束和顶部添加忽略用户中止,并在冲洗后继续处理。

ignore_user_abort(true); 
//your code of force download using php readfile 
ob_end_flush(); 
flush(); 
//code after flushing the output 
相关问题