虽然它已经被卷曲过程写入流从PHP本地文件
题
我创造了我的网站一个简单的代理服务器。为什么我不使用mod_proxy和mod_cache的是一个不同的讨论。下面的代码:
shell_exec("nohup curl --create-dirs -o {$write_path} {$source_url} > /dev/null 2> /dev/null & echo $!");
sleep(1);
$read_speed = 65.5; # 65.5 kb/s download rate
$handle = fopen($write_path, "rb");
$content_type = select_meta_item($headers, 'Content-Type');
$file_size = select_meta_item($headers, 'Content-Length');
send_headers($content_type, $file_size);
flush();
while (!feof($handle))
{
echo fread($handle, round($read_speed * 1024));
flush();
sleep(1);
}
fclose($handle);
流的MP3不使用这种方法工作。播放在Chrome,但不是在Firefox浏览器。起初,我将使用这个通过长尾的JW播放器以流MP3文件。如果这是可行的,我也将使用此发送ZIP文件。
解决方案 2
我计算出来。码能正常工作。
该文件被称为由APACHE由404处理器(的ErrorDocument)。 Apache的自动发送被称为404头之前的PHP脚本。
此文件(上面的代码),而不是启动CURL过程和重定向到流的一个文件。因为Apache返回的404,火狐忽略了MP3响应。 (而铬没有)。现在,我重定向,它工作正常。
其他提示
的问题是,是否你的文件格式,可以通过客户端实现流式传输。如果 Firefox不支持播放MP3 直到它完成下载,没有服务器端挂羊头卖狗肉的金额将帮助你实现流式传输。您将需要客户端支持,如基于闪存的播放器内嵌
有关ZIP文件,因为该编码表被放置在存档的结束后,没有软件就可以打开它,直到它已完全下载。
作为边注,你有没有考虑创建FIFO,在FIFO输入指向curl
,并施加readfile
到FIFO输出,从而让OS事物处理?
不隶属于 StackOverflow