服务器上传图片的最佳位置是什么?

时间:2011-05-19 11:50:12

标签: php image upload directory

默认情况下,服务器上可用的许多文件夹如“public_html”,“public_ftp”或简单的根,哪一个最好安全上传和存储用户的图像,我还可以添加到mysql db的链接? / p>

5 个答案:

答案 0 :(得分:1)

如果您的客户通过http表单上传图片,如果他们需要从网上访问,请将其存储在public_html中。

答案 1 :(得分:1)

我建议您将文件保存在“public_html”中,并创建以下文件以限制公共访问:

file:upload / .htaccess

deny from all

在您的php脚本中,您只能将文件发送给有权访问的用户。

答案 2 :(得分:1)

在我看来,将它存储在公共htdocs文件夹的 之外。这样,如果有人设法上传除图像文件以外的任何内容(例如邪恶的PHP脚本),他们将无法调用它(并且它将无法运行)。

如果您是public_html文件夹,请说/path/to/website/public_html我将它们存储在/path/to/website/uploaded_images

另外,请确保验证它以便它使用允许的图像名称的白名单(例如仅允许.jpg,.gif和.png)

修改 您还需要创建一个脚本,打开图像文件并将其传递回用户

答案 3 :(得分:1)

安全定义。

如果你想在网站上显示这些图像,那么显然是public_html中的文件夹,除非你想使用向用户呈现图像的脚本,可能会改变图像。飞,更改缓存标题等。然后你可以在docroot之外的任何地方移动该文件夹,脚本可以访问这些文件。

就个人而言,我将用户图像,文件和所有内容存储在docroot中,受.htaccess保护,并通过处理用户权限的脚本访问,如有必要。这些文件位于/uploaded文件夹中,子文件夹最多有2个级别,每个“级别”最多可存储1024个目录/文件。文件仅以其ID命名,没有任何扩展名,所有文件信息都存储在数据库中。花了我一些时间来实现,但幸运的是这是一个可重用的代码。

答案 4 :(得分:0)

文档根目录中的任何文件夹都可以。如果您希望它是安全的,请确保您的脚本只接受允许的文件类型,并且作为另一项措施,将.htaccess文件放在该文件夹中:

<FilesMatch "*.php">
    SetHandler None
</FilesMatch>

这将确保从该目录中执行任何内容。