Php readfile('/ home / myhome / video.mp4')

时间:2013-04-08 15:10:23

标签: php file file-upload

你好我已经在这个剧本上工作了两个星期,我无法弄明白该怎么做 我在PHP工作,我想下载视频,问题在于“readfile”功能不适用于/ var / www中的文件,这是一个问题,因为我有很多视频,而且/中没有足够的空间划分。这是我的剧本谢谢。

$fichero = "/home/myhome/Video/$video";

if (file_exists($fichero)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename='.basename($fichero));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($fichero));
        ob_clean();
        flush();
        readfile($fichero);
        exit;
}else{
    die("The File $fichero does not exist");
}   

我仔细检查了地址,并增加了最大下载量,所以如果你有任何解决方案,那就太棒了。

2 个答案:

答案 0 :(得分:2)

您可以使用mod重写来执行此操作:

http://httpd.apache.org/docs/2.2/urlmapping.html

使用类似:

RewriteEngine On
Alias /videos /home/myhome/Video

/home/myhome/Video/中的任何文件映射到www.site.com/videos/

或者你可以更具体一点,并且有基于正则表达式的匹配:

RewriteEngine On
ScriptAliasMatch ^/videos/([^\.])+.mp4 /home/myhome/Video/$1.mp4

将映射符合规则的任何文件:/videos/everythingexepctadot.mp4并将其映射到/home/myhome/Video/matchedtext.mp4

将它与一些RewriteCond相结合,您就可以通过一种简单的方式从非Web根目录提供数据。

答案 1 :(得分:0)


请先检查目录读/写权限。只需尝试以下代码即可动态设置权限。

chmod("/home/myhome/Video/", 0644);

$fichero = "/home/myhome/Video/$video";

if (file_exists($fichero)) {
 //Your Code   
}else{
//Your Code   
}   

干杯,
简森。