如果你不吝啬服务器内存的话 就直接用文件操作函数结合Header发送包头的方式提供给用户吧。给个例子:
<?
$filep="/data/movie/aaa.avi" ;
//---------打开文件---------------
$rfile=fopen($filep,"r");
//-------------给用户发送http报头--------------
Header("Content-type: application/octet-stream"); //--以多媒体数据流的方式发送--
Header("Accept-Ranges: bytes"); //--以字节的方式接收--
Header("Accept-Length: ".filesize($filep)); //--发送文件大小的报头--
Header("Content-Disposition: attachment; filename='七剑.avi'"); //--还可以自定义用户接收到的文件的文件名
//------------- 输出文件内容-------------
echo fread($rfile,filesize($filep));
fclose($rfile);