怎么禁止非会员用户访问视频/图片
程序员文章站
2022-03-20 09:32:49
...
如何禁止非会员用户访问视频/图片?
容易想到的就一种:
将资源文件放到public目录之外,所有对这些资源的访问通过统一入口,比如:
这样做会对服务器造成很大压力吗?
有更好的方法吗?
请多多指教!
------解决思路----------------------
文件保存时打乱文件名,用乱码或者MD5这种东西
在数据库中保存用户id-原文件名-乱码文件名的对应关系,调用时通过原文件名,查询到乱码,然后提供下载,下载名设置成原名即可
------解决思路----------------------
除非你能做到让web服务器认识你的会员,不然只能这么做,效率问题我没测试过,用readfile应该是可以的,只要不是那种先一次读到内存再写入输出流的。你这么想,http访问文件,一样也是先经过了一层web服务器,损耗在所难免。
------解决思路----------------------
使用php去讀取文件,文件放在非web能讀取的目錄,然後用php輸出,在 php控制權限。
例如:網站的目錄是 /home/www/
容易想到的就一种:
将资源文件放到public目录之外,所有对这些资源的访问通过统一入口,比如:
http://xxx/file.php?video.mp3
这样做会对服务器造成很大压力吗?
有更好的方法吗?
请多多指教!
------解决思路----------------------
文件保存时打乱文件名,用乱码或者MD5这种东西
在数据库中保存用户id-原文件名-乱码文件名的对应关系,调用时通过原文件名,查询到乱码,然后提供下载,下载名设置成原名即可
------解决思路----------------------
除非你能做到让web服务器认识你的会员,不然只能这么做,效率问题我没测试过,用readfile应该是可以的,只要不是那种先一次读到内存再写入输出流的。你这么想,http访问文件,一样也是先经过了一层web服务器,损耗在所难免。
------解决思路----------------------
使用php去讀取文件,文件放在非web能讀取的目錄,然後用php輸出,在 php控制權限。
例如:網站的目錄是 /home/www/
if(判斷是否有權限){
$file = '/home/file/aaa.jpg';
echo file_get_contents($file);
}
?>
相关文章
相关视频
上一篇: c#(Socket)异步套接字代码示例
下一篇: Java中如何递归读取文件的代码实例