您可以使用身份验证系统,也不要将公共URL显示给下载程序.例如,您创建一个表,如:
file_name | file_path | file_code
-------------------------------------------------------
My picture | /var/docs/img.jpg | kljsldjalksdqhq1218
Run Code Online (Sandbox Code Playgroud)
在用户登录后(并且符合您定义的标准)后,您将向他显示下载链接:
http://yoursite.com/index.php?page=download&file=kljsldjalksdqhq1218
然后你查询数据库,检查正确的关联,然后你读取文件 - 例如,它位于文件根目录btw之外,file_get_contents()并将其作为八位字节流或文件类型的另一个适当的MIME呈现,以强制文件下载; 类似的东西:
header('Content-Type: "'.$mime.'"');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header('Expires: 0');
header('Pragma: no-cache');
header("Content-Length: ".strlen($file));
Run Code Online (Sandbox Code Playgroud)