php下载文件代码

简介:     如果单单是下载文件, 可简单得很,      $file='/path/filename.txt';      $filename='filename.

    如果单单是下载文件, 可简单得很,

      $file='/path/filename.txt';

      $filename='filename.txt';

      header("Content-Type: ".filetype($file));

      header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');

      header("Content-Length: ".filesize($file));

      readfile($file);

    这样即可, 但是,如果$filename中有中文字(比如$filename="文档.txt"),下载的文件就会是乱码。所以,完整的写法为:

 

 

    $file='/path/filename.txt';
   
    if(!file_exists($file)) throw new Exception('File was not exist.');
   
    $filename='filename.txt';
   
    $ua = $_SERVER["HTTP_USER_AGENT"];
   
    $encoded_filename = urlencode($filename);
    $encoded_filename = str_replace("+", "%20", $encoded_filename);
   
    header("Content-Type: ".filetype($file));
    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-Length: ".filesize($file));
   
    @readfile($file);

相关文章
|
1月前
thinkphp5.1隐藏index.php入口文件
thinkphp5.1隐藏index.php入口文件
30 0
thinkphp5.1隐藏index.php入口文件
|
15天前
|
PHP
php下载MP4视频
php下载MP4视频
9 0
|
1月前
|
PHP 开发者 UED
PHP 中的异常处理:提高代码健壮性的关键
【2月更文挑战第28天】在 PHP 开发中,异常处理是确保应用程序稳定性和可靠性的重要环节。本文将深入探讨 PHP 异常的概念、类型及其处理机制,并通过实例演示如何有效地捕获和处理异常,以增强代码的健壮性和用户体验。
|
3月前
|
PHP 数据安全/隐私保护
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)
php案例:判断这个文件是什么编程语言代码的文件(判断java或者php)