php强制文件下载而非在浏览器打开的自定义函数分享

 更新时间:2014年05月08日 09:37:22   作者:  
这篇文章主要介绍了php强制文件下载而非在浏览器打开的自定义函数分享,需要的朋友可以参考下

有时我们希望如图片、文本文档、网页、mp3、pdf等内容,当点击对应链接时直接下载,而不是在网页上显示,那么就需要强制设置header头信息。以下为一段不会产生乱码的php函数实现代码,其他程序语言也可参考之编写实现。

复制代码 代码如下:

/**
 * Downloader
 *
 * @param $archivo
 *  path al archivo
 * @param $downloadfilename
 *  (null|string) el nombre que queres usar para el archivo que se va a descargar.
 *  (si no lo especificas usa el nombre actual del archivo)
 *
 * @return file stream
 */
function download_file($archivo, $downloadfilename = null) {

    if (file_exists($archivo)) {
        $downloadfilename = $downloadfilename !== null ? $downloadfilename : basename($archivo);
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . $downloadfilename);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($archivo));

        ob_clean();
        flush();
        readfile($archivo);
        exit;
    }

}

相关文章

  • PHP基于ip2long实现IP转换整形

    PHP基于ip2long实现IP转换整形

    这篇文章主要介绍了PHP基于ip2long实现IP转换整形,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • php伪静态之APACHE篇

    php伪静态之APACHE篇

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法!对初学者很有用的哦!
    2014-06-06
  • PHP使用fopen与file_get_contents读取文件实例分享

    PHP使用fopen与file_get_contents读取文件实例分享

    这篇文章主要介绍了PHP使用fopen与file_get_contents读取文件实例分享的相关资料,需要的朋友可以参考下
    2016-03-03
  • PHP中遍历二维数组_以不同形式的输出操作实例

    PHP中遍历二维数组_以不同形式的输出操作实例

    下面小编就为大家带来一篇PHP中遍历二维数组_以不同形式的输出操作实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • PHP实现今天是星期几的几种写法

    PHP实现今天是星期几的几种写法

    今天是星期几的写法有很多,本文整理了常用的三种,感兴趣的朋友可以了解下
    2013-09-09
  • PHP rsa加密解密算法原理解析

    PHP rsa加密解密算法原理解析

    这篇文章主要介绍了PHP rsa加密解密算法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • laravel 4安装及入门图文教程

    laravel 4安装及入门图文教程

    最详细的laravel 4安装及入门图文教程 laravel安装入门,最近,很多朋友因此想学习实用laravel,但是了,自己又不会安装,网上的教程都是零零散散的,无从下手。今天就为大家整理出来,希望对大家有所帮助
    2014-10-10
  • Laravel框架实现调用百度翻译API功能示例

    Laravel框架实现调用百度翻译API功能示例

    这篇文章主要介绍了Laravel框架实现调用百度翻译API功能,结合实例形式分析了基于Laravel框架的百度翻译API调用相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 解决windows上php xdebug 无法调试的问题

    解决windows上php xdebug 无法调试的问题

    这篇文章主要介绍了解决windows上php xdebug 无法调试的问题,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Laravel Memcached缓存驱动的配置与应用方法分析

    Laravel Memcached缓存驱动的配置与应用方法分析

    这篇文章主要介绍了Laravel Memcached缓存驱动的配置与应用方法,结合实例形式分析了在Laravel框架配置Memcached缓存及相关使用方法,需要的朋友可以参考下
    2016-10-10

最新评论