+ -
当前位置:首页 → 问答吧 → 怎么下载在指定文件夹中的文件,文件数据库的名字 路径都存在数据库中

怎么下载在指定文件夹中的文件,文件数据库的名字 路径都存在数据库中

时间:2011-10-28

来源:互联网

怎么下载在指定文件夹中的文件,文件数据库的名字 路径都存在数据库中
要怎么写代码实现???求指点

作者: lingxun920   发布时间: 2011-10-28

你需要查找header函数相关信息,然后就是根据数据库读文件再输出的简单事情。当然也可以做的复杂,比如断点续传。

作者: ZT_King   发布时间: 2011-10-28

借花献佛
PHP code
<?php
function download($file_dir,$file_name)
//参数说明:
//file_dir:文件所在目录
//file_name:文件名
{
  $file_dir = chop($file_dir);//去掉路径中多余的空格
  //得出要下载的文件的路径
  if($file_dir != '')
  {
    $file_path = $file_dir;
    if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')
    $file_path .= '/';
    $file_path .= $file_name;
  } else {
    $file_path = $file_name;
  }
 
  //判断要下载的文件是否存在
  if(!file_exists($file_path))
  {
    echo '对不起,你要下载的文件不存在。';
    return false;
  }
 
  $file_size = filesize($file_path);
 
  header("Content-type: application/octet- tream");
  header("Accept-Range : byte ");
  header("Accept-Length: $file_size");
  header("Content-Disposition: attachment; filename=".$file_name);
 
  $fp= fopen($file_path,"r");
  $buffer_size = 1024;
  $cur_pos = 0;
 
  while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
  {
    $buffer = fread($fp,$buffer_size);
    echo $buffer;
    $cur_pos += $buffer_size;
  }
 
  $buffer = fread($fp,$file_size-$cur_pos);
  echo $buffer;
  fclose($fp);
  return true;
}
download("c:\AppServ\www\test.txt","txt");
?>

作者: PhpNewnew   发布时间: 2011-10-28

相关阅读 更多