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'); >