爱飞 发表于 2015-2-4 00:16:41

PHP教程之用PHP完成文件下载

会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!下载   假如只是通俗的文件下载,完整没有需要用到php,用个<A href='http://xx.xx.com/xx.tar'></a>就能够,然而有的时分为让文件保密,只能给一局部人下载,明显不克不及够把链节告知他人,假如是如许哪就起不到保密的后果。 <P>上面这个函数就是一个用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-stream");
    header("Accept-Ranges: bytes");
    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;
}
讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴。

蒙在股里 发表于 2015-2-4 10:33:49

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

若天明 发表于 2015-2-4 10:33:49

先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。

灵魂腐蚀 发表于 2015-2-4 10:33:49

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

仓酷云 发表于 2015-2-4 20:41:00

最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。

小魔女 发表于 2015-2-8 05:40:23

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

海妖 发表于 2015-2-10 11:04:12

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

精灵巫婆 发表于 2015-3-1 09:23:56

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

admin 发表于 2015-3-10 13:05:00

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

山那边是海 发表于 2015-3-17 07:56:08

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

莫相离 发表于 2015-3-19 01:14:32

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

金色的骷髅 发表于 2015-3-25 04:14:30

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

只想知道 发表于 2015-4-2 04:51:57

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

透明 发表于 2015-4-6 09:02:57

当然这种网站的会员费就几十块钱。

乐观 发表于 2015-4-6 15:16:11

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

兰色精灵 发表于 2015-4-7 16:03:12

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

谁可相欹 发表于 2015-4-11 18:51:48

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

深爱那片海 发表于 2015-4-17 14:13:09

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

活着的死人 发表于 2015-4-17 15:59:18

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

分手快乐 发表于 2015-4-21 09:06:21

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
页: [1] 2
查看完整版本: PHP教程之用PHP完成文件下载