你好我已经在这个剧本上工作了两个星期,我无法弄明白该怎么做 我在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");
}
我仔细检查了地址,并增加了最大下载量,所以如果你有任何解决方案,那就太棒了。
答案 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
}
干杯,
简森。的