语境:
我刚刚编写了一个 PHP 文件上传处理程序,它将任何传入文件保存到我网站的上传目录。上传目录可通过网络公开访问,目前每个文件在使用数据库生成的唯一 ID 重命名后直接转储到其中。处理程序将允许除 JS 和 PHP 之外的任何文件类型,而不仅仅是图像。最终文件的数量可能会达到数千个,但这需要几年的时间。
我的问题:
将所有上传的文件放在服务器上的同一目录中是个好主意还是坏主意,如果不是,请解释原因,以及更好的方法?
我注意到 wordpress 将它们存储在以日期命名的目录中。
我能看到的唯一真正的缺点是,ls
一旦目录中有几千个文件,目录上的 a 可能会占用大量资源。还是对一个目录中的文件数量或一个目录的总大小(运行 Linux)有限制?
关于安全性的稍微先发制人的说明:
上传处理程序可以防止任何人登录管理员级别的用户上传文件,并且它也不会保存 PHP 或 JS 文件(至少在我可以使用数组type
中的属性可靠地测试它们的情况下),因为这些文件可能会被执行$_FILES
由服务器。我计划实施的另一个保护措施是.htaccess
阻止对某些文件类型的请求的文件,以防万一。任何关于这方面的说明也将受到欢迎,但这不是这个问题的一部分。