麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
在线播放与多线程断点下载问题
悬赏分:20 - 2007年08月15日

最近我在做一个影音下载(在线播放)系统,现有两个问题向大家请教!
原理简述
为保证资源的下载行为是经过验证允许的我将影音文件放在WEB目录以外的RES目录中,然后通过PHP读取数据再发送到浏览器中.
请看源码(down.php)
$fsize=filesize($path[2].$file);

Header ("Content-type: application/octet-stream");
header ('Pragma: cache');
Header ("Accept-Ranges: bytes");
Header ("Content-Length: ".$fsize);
Header ("Content-Disposition: attachment; filename=$disp");

$fp=fopen($path[2].$file,"r");
$data=fread($fp,$fsize);
downs($ac);
echo $data;
fclose($fp);

这段代码能正确执行,并且能用flasget来下载.但是有两个问题
一 这段代码不支持多线程与断点下载
二 用这种方式输出的影音文件不能在IE中实现在线播放

怎么解决这个问题呢?
下面有一些可供参考的资料
http://dev.csdn.net/article/32/32039.shtm
(jsp的,虽然不能直接解决问题,但提供了思路)


提示
//如果是下载文件的范围而不是全部,向客户端声明支持并开始文件块下载
//要设置状态
//响应的格式是:
//HTTP/1.1 206 Partial Content
response.setStatus(javax.servlet.http.HttpServletResponse.SC_PARTIAL_CONTENT);//206

//从请求中得到开始的字节
//请求的格式是:
//Range: bytes=[文件块的开始字节]-
p = Long.parseLong(request.getHeader("Range").replaceAll("bytes=","").replaceAll("-",""));

它那个程序关键就在这儿

提问者:zfan76   08-15 15:03
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
82 + 72 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM