专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » php文件下载:PHP实现文件安全下载 »正文

php文件下载:PHP实现文件安全下载

来源: 发布时间:星期三, 2008年9月10日 浏览:297次 评论:0

  你一定会笑我\"下载文件\"如此简单都值得说?当然并不是想象那么简单。例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用\"Redirect\"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于\"网上购物\"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。程序如下:

\"Click

  $file_name = \"info_check.exe\";

  $file_dir = \"/public/www/download/\";

  if (!file_exists($file_dir . $file_name)) { //检查文件是否存在

  echo \"文件找不到\";

  exit;

  } else {

  $file = fopen($file_dir . $file_name,\"r\"); //打开文件

  //输入文件标签

  Header(\"Content-type: application/octet-stream\");

  Header(\"Accept-Ranges: bytes\");

  Header(\"Accept-Length: \".filesize($file_dir . $file_name));

  Header(\"Content-Disposition: attachment; filename=\" . $file_name);

  //输出文件内容

  echo fread($file,filesize($file_dir . $file_name));

  fclose($file);

  exit;}

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

  $file_name = \"info_check.exe\";

  $file_dir = \"www.easycn.net/\";

  $file = @ fopen($file_dir . $file_name,\"r\");

  if (!$file) {

  echo \"文件找不到\";

  } else {

  Header(\"Content-type: application/octet-stream\");

  Header(\"Content-Disposition: attachment; filename=\" . $file_name);

  while (!feof ($file)) {

  echo fread($file,50000);

  }

  fclose ($file);

  }

  这样就可以用PHP直接输出文件了。

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: