PHP强制下载进入网页

时间:2013-07-08 11:36:23

标签: php excel download webpage xls

我有一个强制下载文件的问题。

我正在使用PHPExcel根据从我们的数据库中提取的信息创建一个xls文件。这一切都运行正常,Excel文件可以根据需要运行。

然后我尝试使用以下函数强制下载创建的文件。但是它下载网页而不是文件。

目前正在开发Win XP SP3,Notepad ++,XAMPP(Apache 2.4.3,PHP 5.4.7)。

**函数

public function downloadfile($file){
    if(file_exists($file) && is_file($file)){           
        //ob_start();
        echo $file;
        echo "in file exists";
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);    
        //ob_end_flush();
    }else
        echo "file or location does not exist <br>";    
        echo $file;
}

任何帮助将不胜感激。 提前致谢

2 个答案:

答案 0 :(得分:2)

如果是excel文件,那么只需重定向到该网址,默认情况下会要求下载文件。

header("Location: http://site.com/path/to/file/filename.xlsx");
/* Make sure that code below does not get executed when we redirect. */
exit;

如果在javascript中给出

location.href = 'http://site.com/path/to/file/filename.xlsx';

答案 1 :(得分:1)

header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Content-Disposition: inline; filename=\"" . $fileName . ".xls\"");
header("Pragma: no-cache");
header("Expires: 0");
readfile($filePath);

试试这个