我为特定用户下载文件的php代码 我将文件的内容存储在数据库中(使用blob类型)。
<?php
//do stuffs to validate user
//do stuffs get the content from database;
//$r=mysql_fetch_object("$query");
header("Content-Type: $r->type");
header("Content-Disposition: attachment; filename=\"$r->name\"");
echo $r->content;
?>
如果是大文件,文件下载需要很长时间。 如何改进代码? 多个连接的下载速度是否会增加?
答案 0 :(得分:1)
假设连接没有人为限制,HTTP传输将占用尽可能多的网络管道。
一旦连接开始受到限制(例如在像Rapidshare这样的文件下载站点上,'免费'用户获得有限的带宽),那么使用并行连接可以提高速度。例如单个流的速度限制为50k / s,因此打开2个流可以达到100k / s的有效速度。
但是那时你将不得不支持远程下载。您的脚本从头到尾发送整个文件。因此用户将下载整个文件两次。
答案 1 :(得分:0)
你可能没有那么多办法来加速这个特定的过程。
服务器和客户端带宽是硬限制。通过PHP流式传输文件会产生一些额外的开销,但看到数据来自数据库,也没有直接的方法来改进它。
转移到带有更多带宽的更快的服务器可能有所帮助,但也可能没有。如果客户端的连接速度很慢,那么你无能为力。