$file = 'var/www/html/share/files/'.$_GET['filename'];
if (is_readable ($file)) {
$fsize = $row[size];
$path_parts = pathinfo($file);
$ext = strtolower($path_parts["extension"]);
$ctype="video/".$ext;
header("Content-type: ".$ctype);
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
readfile($file);
exit;
} else {
die("Invalid request");
}
答案 0 :(得分:3)
您收到该消息是因为您编写的代码显示该消息。
显然,这会产生false
值:
if (is_readable ($file))
您在此设置$file
的值:
$file = 'var/www/html/share/files/'.$_GET['filename'];
您很可能想要在根文件夹前添加:
$file = '/var/www/html/share/files/'.$_GET['filename'];
否则,您在相对于当前文件夹的名为var
的文件夹中查找文件,这是不太可能的。
另外,请注意你正在做的是非常糟糕的做法。使用此代码,任何用户都可以从您的计算机请求任何文件。例如,如果GET请求中的filename
是这样的话:
../../../../../etc/passwd