我有一个不断增长的网站,有4种大小的3万张图像,总共120k。我目前的解决方案是将它们存储在数据库中,从我在堆栈上看到的内容来看,这似乎是一个非常糟糕的主意。
我开始明白为什么了。我注意到性能急剧下降。认为显而易见的解决方案是将这些图像移动到文件夹设置中,我想将用户ID用作目录名称,然后使用公共和私有子目录。
结构如下所示:
/54869
/public
/size_1/img1.jpg
/size_2/img1.jpg
/size_3/img1.jpg
/size_4/img1.jpg
/private
/size_1/img2.jpg
/size_2/img2.jpg
/size_3/img2.jpg
/size_4/img2.jpg
保护此私人文件夹的最佳方法是什么,如果文件所有者已授予权限,则仅提供其他用户访问权限?
我还想阻止用户只是查看任何文件夹的内容,但我想我可以执行检查客户端来解决此问题。
有任何想法或建议吗?
答案 0 :(得分:3)
您可以从网络上访问该文件夹(例如将文件夹放在htdocs
之外或添加.htaccess规则)。
创建一个PHP脚本,处理对私有映像的所有请求。 该脚本必须执行以下操作:
然后,在您的HTML中,只需指向/secret_image.php?id=3
或者您想要使用图片的路径/secret_image.php?p=/54869/public/size_1/img1.jpg
答案 1 :(得分:0)
你可以试试这个
imageViewer.php?imgID=XXX; where XXX=hashFunction(salt.imgName)
如果用户有权限,请执行 imageViewer.php 中的所有处理!