服务器响应使用php read_file MP3减速

时间:2014-09-01 13:03:02

标签: php audio download

我有一个项目,用户有一个上传的mp3文件库,存储在httpdocs文件树之外,并通过php readfile()函数访问。 该功能有效,但页面本身加载速度非常慢。

我有一个php文件被称为每个音频文件的src,我在几个应用程序中使用过。

$sql='SELECT `name`,`file`, `filetype`,`access` FROM `'.$DBtable.'` WHERE `id`="'.intval($_GET['file']).'";';
$database->setQuery($sql);
$file=$database->loadObject();
//Check access against my access only if the file is restricted
if($file->access>0)
{
$access=isAuth($database);
    if($access<$file->access)
        {
        die('Restricted Access');
        }
}
    $uploaddir=BASE_URI;
$filename=$file->file;
    switch ($file->filetype) { 
  case "pdf": $ctype="application/pdf"; break; 
  //case "exe": $ctype="application/octet-stream"; break; 
  case "zip": $ctype="application/zip"; break; 
  case "doc": $ctype="application/msword"; break; 
  case "xls": $ctype="application/vnd.ms-excel"; break; 
  case "ppt": $ctype="application/vnd.ms-powerpoint"; break; 
  case "gif": $ctype="image/gif"; break; 
  case "png": $ctype="image/png"; break; 
  case "jpeg": 
  case "jpg": $ctype="image/jpg"; break;
  case "mp3": $ctype="audio/mpeg";break;
  case "ogg": $ctype="audio/ogg"; break; 
  default: $ctype="application/force-download"; 
} 
header('Content-type: '.$ctype);
header('Content-Disposition: attachment; filename="'.$file->name.'.'.$file->filetype.'"');
readfile($uploaddir.$filename);

页面本身正在调用

<img data-src="file.php?source=images&file=668" class="thumbnail" parent="667">
<audio class="gallery_audio" controls="controlls">
<source src="audio_file.php?file=123" type="audio/mpeg">
    <source src="audio_file.php?file=124" type="audio/ogg">
Your browser does not support the audio element.
</audio>

其中file.php和audio_file.php是加载php代码的文件的副本。 我已经尝试创建这些文件的多个副本以分散http请求,认为可能服务器因重复请求同一文件而过载,*只有10个,但仍然没有爱。此外,看起来FF一直比IE或Chrome更好地处理这个问题。 当我只加载图像时,即使对于更大量的请求,它似乎也会更好地响应。这些是非常小的音频文件。 50-90KB的大小不应该是主要问题。

是否有更好的方向前往音频文件?延迟加载有助于图像,但似乎对音频没什么帮助。

0 个答案:

没有答案