仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1549|回复: 20
打印 上一主题 下一主题

[学习教程] PHP教程之用PHP完成分段下载

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:53:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。   假如只是通俗的文件下载,完整没有需要用到php,用个就能够,然而有的时分为让文件保密,只能给一局部人下载,明显不克不及够把链节告知他人,假如是如许哪就起不到保密的后果。上面这个函数就是一个用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;

}

本文搜集收拾整顿自互联网,若您是原文作者,请来信更改作者及出处 Post@chinaz.com(把#改成@)

HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西。
小女巫 该用户已被删除
沙发
发表于 2015-2-4 06:54:11 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-8 00:34:05 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
深爱那片海 该用户已被删除
地板
发表于 2015-2-19 03:23:39 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
只想知道 该用户已被删除
5#
发表于 2015-3-6 12:26:54 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
飘灵儿 该用户已被删除
6#
发表于 2015-3-11 02:04:37 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
若天明 该用户已被删除
7#
发表于 2015-3-15 11:40:54 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
海妖 该用户已被删除
8#
发表于 2015-3-18 12:37:59 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-19 06:25:23 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
老尸 该用户已被删除
10#
发表于 2015-3-23 23:14:58 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
变相怪杰 该用户已被删除
11#
发表于 2015-3-27 16:03:44 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
简单生活 该用户已被删除
12#
发表于 2015-3-27 23:34:56 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
再见西城 该用户已被删除
13#
发表于 2015-4-7 00:55:21 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
因胸联盟 该用户已被删除
14#
发表于 2015-4-25 03:26:51 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
山那边是海 该用户已被删除
15#
发表于 2015-4-28 23:44:00 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
冷月葬花魂 该用户已被删除
16#
发表于 2015-5-8 07:28:46 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
再现理想 该用户已被删除
17#
发表于 2015-6-13 21:50:25 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
金色的骷髅 该用户已被删除
18#
发表于 2015-6-24 22:09:40 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
愤怒的大鸟 该用户已被删除
19#
发表于 2015-6-30 22:24:06 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
若相依 该用户已被删除
20#
发表于 2015-7-1 21:52:18 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表