2013-06-18 71 views
-4

我正面临下载脚本的问题,无论何时下载到我的项目网站上,网站上的所有链接都不起作用。 一旦文件完全下载,链接开始工作。面向PHP下载脚本的问题

我在设置header和使用readfile方法php下载文件。我希望该文件下载应与用户在网站上的操作同时工作。 我使用下面的代码

header("Pragma: public"); 
    header("Expires: 0"); 
    header("Content-Type: application/$ctype"); 
    header("Content-Description: File Transfer"); 
    header("Content-Disposition: inline; filename=$docName"); 
    header('Content-Length: '. filesize($filename)); 
    header("Accept Ranges: bytes"); 
    header("Content-Transfer-Encoding: binary");   
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");    
    readfile("$filename"); 

这里filename是文件的名称和ctype是文件类型。

如何解决这个问题?

请让我知道是否有人有解决这个问题。

+1

得到任何代码向我们展示任何文件? – ChrisW

+0

许多人只有在能够第一时间了解问题时才会有解决方案,所以请帮助我们解决您的问题 –

回答

0

我只是猜测,你缺少一个适当的标题,因为你需要

$下载更改内容类型和传输编码是实际的文件即/var/www/download_images/1.jpg

$文件大小是文件

$文件名的大小可以是你希望呈现给用户,即homer_simpson.jpg

<?php 
    if (file_exists($download)) 
    { 
     header("Cache-Control: must-revalidate"); 
     header("Expires: 0"); 
     header("Pragma: public"); 
     header("Content-Description: File Transfer"); 
     header("Content-Length: ". $filesize .";"); 
     header("Content-Disposition: attachment; filename=" . $filename); 
     header("Content-Type: application/octet-stream; "); 
     header("Content-Transfer-Encoding: binary"); 
     ob_clean(); 
     flush(); 

     readfile($download); 
    } 
?>