PHP将照片存储在非公开的文件夹中

时间:2013-12-28 02:17:20

标签: php image

我想创建一个照片共享php网站,我对你很陌生PHP我已经习惯了基于Java的服务器。

我想提供一个表单来上传图片。我希望能够上传数百个图像,因此最好将图像存储在本地文件夹中,并将指向该文件的指针存储在数据库中。原因是因为MySQL数据库有限但磁盘空间不是。

上传图片的人可以与其他某些用户分享这张照片,因此我会有一张桌子来维护图片的权限。

我不希望使用直接网址下载此照片 - 网址应该将图片的ID作为查询参数提供,服务器将使用该图片进行响应,但只有在该用户具有文件。我知道如何做到这一点,创建一个将读取文件并输出到响应的PHP。

如果我将照片存储在某处某个文件夹的磁盘内,如何确保使用/path/to/photo.png这样的直接网址无法点击照片?

1 个答案:

答案 0 :(得分:1)

你有两种不同的选择。

首先,假设您正在使用apache,请在文件夹上使用.htaccess文件使其受限制或修改httpd文件(如果可以)。

见:

特别是DENY命令:

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#deny

无论哪种方式,php应该仍然能够访问图像,因为它是服务器端。

另一种选择是将文件存储在php服务器所在的文件夹之外(例如,在apache的htdocs之外)。您可以使用file://导航文件系统,直接放置目录(例如E:\ Images)或相对路径。 php不仅限于在互联网可访问的区域内保存文件。

请参阅:http://www.php.net/manual/en/wrappers.file.php