php nginx实现文件下载
配置nginx
server { listen 80; server_name demo.com; #你的域名 root "D:/wwwroot/demo"; # 你的项目路径 # 下载文件关键配置 location /download/ { internal; alias G:/files/; # 文件的路径 sendfile on; # 开启高效文件传输模式 autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes autoindex_localtime on; # 显示的文件时间为文件的服务器时间 charset utf-8,gbk; # 避免中文乱码 } ... }
PHP代码实现逻辑
以下代码会下载 G:/files/demo.rar 文件,请确保文件存在
<?php $origin_name = 'demo.rar'; // 启用 nginx X-Accel 下载 header('Content-Type: application/octet-stream'); $encoded_fname = rawurlencode($origin_name); header('Content-Disposition: attachment;filename="'.$encoded_fname.'";filename*=utf-8'."''".$encoded_fname); header('X-Accel-Redirect: '. '/download/'. $origin_name); header('X-Accel-Buffering: yes'); >