我将使用Web框架在PHP中实现一个网站。我从未在PHP中实现过网站...我在学习新语言时没有遇到任何问题。 问题是我想知道是否可以使用像Zend,CakePHP这样的框架来创建一个允许您以给定速率(例如50 KB / s)下载文件的页面? 谢谢。
答案 0 :(得分:5)
您的服务器应该处理此问题,而不是PHP。
如果您有 Apache ,请参阅此处:
对于 Lighttpd ,请参见此处:
答案 1 :(得分:1)
据我所知,限制下载速度不是核心的一部分,但这很容易实现,只需扩展MediaView类并将simple feature添加到其中。
答案 2 :(得分:0)
在我看来,PHP不是限制下载的好语言。我从来没有这样做过,但我会这样做
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="image.jpg"');
$f = file('may_image_or_file_to_download.jpg');
foreach($f as $line){
echo $line;
flush();
usleep(10000); //change sleep time to adjusting download speed
}
如果有可能,最好使用一些Apache mods
抱歉我的英文
答案 3 :(得分:0)
在这些框架中也可以使用PHP做的所有事情。诀窍是在不违反框架规则的情况下(例如MVC模式)这样做。
在CakePHP中,绝对可以创建一个控制器动作,该动作会输出一个包含所有所需头部的二进制文件。在您的控制器操作中,您可以limit the download speed with standard php。
答案 4 :(得分:0)
如果框架没有提供该功能,请使用现有的库,例如: bandwidth-throttle/bandwidth-throttle
use bandwidthThrottle\BandwidthThrottle;
$in = fopen(__DIR__ . "/resources/video.mpg", "r");
$out = fopen("php://output", "w");
$throttle = new BandwidthThrottle();
$throttle->setRate(100, BandwidthThrottle::KIBIBYTES); // Set limit to 100KiB/s
$throttle->throttle($out);
stream_copy_to_stream($in, $out);