PHP readfile和下载无法正常工作

时间:2017-11-04 00:00:42

标签: php content-type readfile

我正在尝试编写一个PHP脚本,它将在客户端下载文件。该文件可以是Excel(xlsx)或JSON。

The URL will look like:
http://<server>/php/download.php?file=/some/path/file.xlsx&name=file.xlsx&format=xlsx

我的PHP脚本如下所示:

<?php
if($_GET['format']==='excel') {
    header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
} else if($_GET['format']==='json') {
    header('Content-type: application/json');
}

header("Content-disposition: attachment; filename=".$_GET['name']);
readfile($_GET['file']);
?>

我已经仔细检查过实际文件没有损坏或其他任何内容。但是当我使用上面的URL时,会下载一个0大小的文件(尽管名称正确),显然这是错误的。我的PHP代码有什么问题?

1 个答案:

答案 0 :(得分:0)

我能够使用echo file_get_contents($filename)而不是服务器管理员禁用的readfile来执行此操作。