在PHP

2016-09-20 40 views
0

我有一个Ajax调用去一个PHP脚本下载一个文件,在PHP

$filename = $_SERVER['DOCUMENT_ROOT'].$prospectusFiles[0]['url']; 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.urlencode($filename)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($filename)); 
    echo file_get_contents($filename); 

并且Ive试图

$file_name='prospectus.pdf'; 
    $file_url = $_SERVER['DOCUMENT_ROOT'].$prospectusFiles[0]['url']; 
    header('Content-Type: application/octet-stream'); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"".$file_name."\""); 
    echo readfile($file_url); 

名两个是绝对路径,并将其下载文件是正确的。什么是错的,这里可能有配置问题吗?

+1

**如何**这是行不通的?没有下载?损坏的下载?错误的下载? –

+0

请详细解释@Mark B所说的“不工作”的详细信息。另外,你将一个二进制字节流回传给ajax调用。根据你对这些数据的处理方式,你可能会在使用javascript进行渲染时遇到一些问题。 – eggmatters

回答

0

将使用简单链接下载您的文件(您可以设置target =“_ blank”)而不是“ajax call”。