首頁 >後端開發 >php教程 >php怎麼下載文件,php文件下載正確方法

php怎麼下載文件,php文件下載正確方法

WBOY
WBOY原創
2016-07-25 08:51:311985瀏覽
  1. // 检查 form 是否全部填写完毕...
  2. if ($form_completed) {
  3. Header("Location: http://www.myweb.com/download/info_check.exe");
  4. exit;
  5. }
  6. ?>
  7. 或者:
  8. 开始下载文件
复制代码

这里利用了ID方式接收要下载文件的编号,然后用“Redirect”的方式连接到实际的网址。

为安全起见,不让用户直接复制网址下载该文件,建议使用PHP直接读取该实际文件然后下载。

代码:

  1. $file_name = "info_check.exe";
  2. $file_dir = "/public/www/download/";
  3. if (!file_exists($file_dir . $file_name)) { //检查文件是否存在
  4. echo "文件找不到";
  5. exit;
  6. } else {
  7. $file = fopen($file_dir . $file_name,"r"); // 打开文件
  8. // 输入文件标签
  9. Header("Content-type: application/octet-stream");
  10. Header("Accept-Ranges: bytes");
  11. Header("Accept-Length: ".filesize($file_dir . $file_name));
  12. Header("Content-Disposition: attachment; filename=" . $file_name);
  13. // 输出文件内容
  14. echo fread($file,filesize($file_dir . $file_name));
  15. fclose($file);
  16. exit;}
  17. ?>
复制代码

而如果文件路径是“http”或者“ftp” 网址,则源代码会有少许改变,程序如下:

  1. $file_name = "info_check.exe";
  2. $file_dir = "http://www.jincai123.com/";
  3. $file = @ fopen($file_dir . $file_name,"r");
  4. if (!$file) {
  5. echo "文件找不到";
  6. } else {
  7. Header("Content-type: application/octet-stream");
  8. Header("Content-Disposition: attachment; filename=" . $file_name);
  9. while (!feof ($file)) {
  10. echo fread($file,50000);
  11. }
  12. fclose ($file);
  13. }
  14. ?>
复制代码

使用以上代码,可以用php直接输出文件。



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn