使用PHP为web flash视频播放器提供大型mp4文件
我在任何地方都找不到任何解决办法 我有一个为flash player输出mp4文件的文件,如下所示:使用PHP为web flash视频播放器提供大型mp4文件,php,Php,我在任何地方都找不到任何解决办法 我有一个为flash player输出mp4文件的文件,如下所示: ^^/stream/ntpxrmmmgjjd47423 我对这个/流有一个代码,如下所示: ^^^ $file = str_replace('/','\\',DOC_ROOT_STREAM."/".$path); header('Last-Modified: Thu, 23 Sep 2010 02:00:02 GMT'); header('Content-Length: ' . filesiz
^^/stream/ntpxrmmmgjjd47423
我对这个/流有一个代码,如下所示:
^^^
$file = str_replace('/','\\',DOC_ROOT_STREAM."/".$path);
header('Last-Modified: Thu, 23 Sep 2010 02:00:02 GMT');
header('Content-Length: ' . filesize($file));
header('Connection: close');
header('Content-Type: video/mp4');
readfile($file);
exit;
这适用于小文件,但不适用于大文件
我检查过了,URL是正确的
我尝试更改内存限制
和时间限制
,但没有帮助
另外,我不能使用诸如xsendfile
等Apache模块
我需要一个readfile()
的解决方案,这样它就不会开始在内存中加载文件,然后将其发送到闪存再次读取,然后开始流式处理。尝试以下操作:
$handle = fopen($file, "rb");
while (!feof($handle)) {
echo fread($handle, 32 * 1024);
}
fclose($handle);
readfile()
将尝试将文件的全部内容加载到内存中。您可以使用fread()
一次读取一小块内容。试试以下方法:
$handle = fopen($file, "rb");
while (!feof($handle)) {
echo fread($handle, 32 * 1024);
}
fclose($handle);
readfile()
将尝试将文件的全部内容加载到内存中。您可以使用fread()
一次读取一小块内容。另一个可能会导致PHP提供的大文件出现问题的原因是浏览器往往只下载文件的一部分,然后再返回,以避免在不需要时一次下载所有内容,看一看-这将让您的php应用程序处理这些请求另一个可能会导致php提供的大文件出现问题的原因是浏览器往往只下载文件的一部分,然后稍后再返回,以避免在不需要时一次下载所有内容,看看-这将让您的php应用程序处理这些请求