使用相同的代码PHP下载不同类型的文件

时间:2017-11-27 00:26:05

标签: php

我正在尝试从服务器下载文件,它适用于pdf文件,我想知道有没有办法下载任何类型的文件,如doc,zip等..

我的代码:

<?php
$doc = $sqlite->readDoc($documentId);
    if ($doc != null) {
        header("Content-Type:" . $doc['mime_type']);
        header('Content-disposition: attachment; filename="something"');
        print $doc['doc'];

    } else {
        echo 'Error occured while downloading the file';
    }
?>

2 个答案:

答案 0 :(得分:1)

您需要识别文件 - 可能使用此功能:

http://php.net/manual/en/function.mime-content-type.php

然后您可以创建一个开关来指示内容类型和适当的处置。这里有一个不错的例子:PHP - send file to user

答案 1 :(得分:1)

一个简单的函数,可用于下载任何文件格式化路径。

function DownloadFile($strFilePath)
{
        $strContents = file_get_contents(realpath($strFilePath));
        if (strpos($strFilePath,"\\") > -1 )
            $strFileName = substr($strFilePath,strrpos($strFilePath,"\\")+1);
        else
            $strFileName = substr($strFilePath,strrpos($strFilePath,"/")+1);
        header('Content-Type: application/octet-stream');
        header("Content-Disposition: attachment; filename=\"${strFileName}\"");
        echo $strContents;
}

使用示例

$file = $_GET['file_id'];
$path = "../uploads/".$file; // change the path to fit your websites document structure
DownloadFile($path);