我创造了我的网站一个简单的代理服务器。为什么我不使用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事物处理?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top