仓酷云

标题: PHP教程之用PHP完成文件下载 [打印本页]

作者: 爱飞    时间: 2015-2-4 00:16
标题: 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
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 若天明    时间: 2015-2-4 10:33
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 灵魂腐蚀    时间: 2015-2-4 10:33
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 仓酷云    时间: 2015-2-4 20:41
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 小魔女    时间: 2015-2-8 05:40
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 海妖    时间: 2015-2-10 11:04
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 精灵巫婆    时间: 2015-3-1 09:23
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: admin    时间: 2015-3-10 13:05
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 山那边是海    时间: 2015-3-17 07:56
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 莫相离    时间: 2015-3-19 01:14
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 金色的骷髅    时间: 2015-3-25 04:14
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 只想知道    时间: 2015-4-2 04:51
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 透明    时间: 2015-4-6 09:02
当然这种网站的会员费就几十块钱。
作者: 乐观    时间: 2015-4-6 15:16
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 兰色精灵    时间: 2015-4-7 16:03
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 谁可相欹    时间: 2015-4-11 18:51
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 深爱那片海    时间: 2015-4-17 14:13
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 活着的死人    时间: 2015-4-17 15:59
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 分手快乐    时间: 2015-4-21 09:06
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 小女巫    时间: 2015-4-23 01:08
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2