我正在用 php 编写一个 Web 应用程序,用户可以在其中上传自己的文件或图像,但如何保护这些文件不被所有者以外的其他人访问。想想 dropbox,保护这些文件的机制是什么,我尝试过搜索,但没有得到任何关于此的信息。任何指向教程的指针或链接都会非常有用。提前致谢。
如果您将图像和文件作为二进制 blob 存储在数据库中,那么只需在从数据库中检索和显示它们之前检查登录用户的权限即可。
如果您将它们存储为常规文件,您需要做的是将它们存储在您网站的文档根目录之上,这样它们就无法在网络上公开访问。然后要检索图像,在从数据库中检查正确的所有权后(我们不知道您的体系结构,因此请替换您存储的内容属于谁),PHP 可以检索文件并将其使用正确的标头发送到浏览器。
例如,要显示图像:
// Check permissions...
// If permissions OK:
$img = file_get_contents("/path/to/image.jpg");
// Send jpeg headers
header("Content-type: image/jpeg");
// Dump out the image data.
echo $img;
exit();
例如,您可以保留一个与用户 ID 匹配的文件名数据库表,以跟踪谁拥有什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)