PHP强制下载文件,PHP输出文件流

作者:Liaodeity - 2015年07月23日

让浏览器直接下载文件,那么以下函数可以强制下载文件,函数中使用了application/octet-stream头类型。

通过访问一个地址读取文件输出到浏览器,进行下载

函数

/**
 * [getExtension PHP获取文件扩展名或后缀名]
 * @param  [string] $filename [文件名称]
 * @return [string]           [返回后缀名]
 * @author [建百站www.jianbaizhan.com]
 */
function download($filename){ 
    if ((isset($filename))&&(file_exists($filename))){ 
        //TODO: 大文件断点续传
        header("Content-Description: File Transfer");
        header('Content-type: application/octet-stream');
        header('Content-Length:' . filesize($filename));
        if (preg_match('/MSIE/', $_SERVER['HTTP_USER_AGENT'])) { //for IE
            header('Content-Disposition: attachment; filename="' . rawurlencode($filename) . '"');
        } else {
            header('Content-Disposition: attachment; filename="' . $filename . '"');
        }
       readfile("$filename"); 
    } else { 
       echo "file not exist!"; 
    } 
}

使用

使用的时候注意文件的路径问题,建议用绝对路径,这些就不会出现一些找不到文件之类的错误。

download('WxpayAPI_php_v3.zip');


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/240

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!