如果 php 会话存在,则从 .htaccess 锁定文件夹下载文件
If php session exists, then download file a file from .htaccess locked folder
我一直在寻找有关如何仅在存在用户会话时从网站安全下载文件的好指南。
如果用户会话不存在,则不应访问下载文件夹中的文件。
因此我假设存储文件的文件夹需要被 .htaccess 文件“锁定”?
或者存储在根文件夹之外?哪个最好?
如果有人能为我指出一个好的guide/tutorial,我将不胜感激。谢谢
这就是我最终所做的,效果很好。在我的场景中,我将文件存储在根文件夹之外。
$filename= $_GET['filename'];
// the file path and file you want to send inline
$path = $fileroot."/files/".$filename;
if(!file_exists($path)) {
die("There has been an error unfortunately");
}
// the file name of the download, change this if needed
$public_name = basename($path);
// get the file's mime type to send the correct content type header
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $path);
// header("Content-Disposition: attachment; filename=$public_name;");
//Use "attachment" instead of inline if you want direct download instead
// send the headers
header("Content-Disposition: inline; filename=$public_name;");
header("Content-Type: $mime_type");
header('Content-Length: ' . filesize($path));
readfile($path);
我一直在寻找有关如何仅在存在用户会话时从网站安全下载文件的好指南。
如果用户会话不存在,则不应访问下载文件夹中的文件。
因此我假设存储文件的文件夹需要被 .htaccess 文件“锁定”? 或者存储在根文件夹之外?哪个最好?
如果有人能为我指出一个好的guide/tutorial,我将不胜感激。谢谢
这就是我最终所做的,效果很好。在我的场景中,我将文件存储在根文件夹之外。
$filename= $_GET['filename'];
// the file path and file you want to send inline
$path = $fileroot."/files/".$filename;
if(!file_exists($path)) {
die("There has been an error unfortunately");
}
// the file name of the download, change this if needed
$public_name = basename($path);
// get the file's mime type to send the correct content type header
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $path);
// header("Content-Disposition: attachment; filename=$public_name;");
//Use "attachment" instead of inline if you want direct download instead
// send the headers
header("Content-Disposition: inline; filename=$public_name;");
header("Content-Type: $mime_type");
header('Content-Length: ' . filesize($path));
readfile($path);