用户上传的图片存储在哪里

用户上传的图片存储在哪里

我正在使用 Restlet 作为后端尝试创建一个小型 Web 应用程序。

我允许用户上传个人资料图片,但不知道将它们存储在哪里。Google 告诉我将其存储在文件系统中,这很合理。

那么我是否应该将它们存储在 Web 前端所在的公共 Web 文件夹中?但这样人们岂不是很容易就能访问所有个人资料图片?

如果我不将图像存储在公共网络目录中,那么我应该将它们存储在哪里以及如何保护它们?

我的服务器是 Ubuntu server 12.04,提前致谢

答案1

您当然可以将它们存储在公共文件夹内的子文件夹中,并禁用文件夹浏览。然后仅在您的应用程序中公开图像。

答案2

您可以将文件存储在文档根目录之外,并使用相对路径将它们包含在后端。通常,Web 服务器将拒绝访问文档根目录的父目录,但后端服务将能够访问它们。

即如果你使用:

DocRoot = /var/www
Images = /var/profile-pics

这不会起作用:

http://www.yourdomain.com/../profile-pics/David.JPG

这将起作用:

<?php include('../profile-pics/David.JPG'); ?>

注意:PHP 用作示例,当然您不能以这种方式包含 jpeg。仅用作将敏感文件置于文档根目录之外的示例。

相关内容