php文件下载(防止中文文件名乱码)的示例代码

发布时间:2019-07-23编辑:脚本学堂
分享一例php实现文件下载的代码,并且解决了中文文件名乱码的问题,有需要的朋友不妨作个参考,相信对你会有所帮助。

本节内容:
php文件下载实例,解决中文文件名乱码的问题。

例子:
 

复制代码 代码示例:
<?php
/**
* php文件下载代码,中文无乱码
* by www.jb200.com
*/
    $file = "/tmp/中文名.tar.gz";
 
    $filename = basename($file);
 
    header("Content-type: application/octet-stream");
 
    //处理中文文件名
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $encoded_filename = urlencode($filename);
    $encoded_filename = str_replace("+", "%20", $encoded_filename);
    if (preg_match("/MSIE/", $ua)) {
     header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
    } else if (preg_match("/Firefox/", $ua)) {
     header("Content-Disposition: attachment; filename*="utf8''" . $filename . '"');
    } else {
     header('Content-Disposition: attachment; filename="' . $filename . '"');
    }
 
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header("Content-Length: ". filesize($file));
    readfile($file);

另外,有兴趣的朋友,可以研究下apache/ target=_blank class=infotextkey>apache服务器中的module mod_xsendfile模块,可以用它来提高PHP发送文件的效率。

您可能感兴趣的文章:
一个简单的php文件下载函数
php实现文件下载功能的简单例子
一个不错的PHP文件下载类
php实现文件下载的代码
php 强制文件下载的实现代码一例
php 文件下载类(header头信息的应用实例)
php header函数 文件下载时直接提示保存的代码
php header函数实现文本文件下载的方法
php使用header发送各种类型文件下载的例子
php强制性文件下载的函数
php实现ie中文件下载的代码