【发布时间】:2013-03-12 21:49:27
【问题描述】:
我正在编写一个要保存徽标图像的脚本。我为每个用户创建一个“logo”文件夹,例如用户数据/user_1/logo/img007.png
如果用户决定在一段时间后上传不同的图像,我想自动删除旧的图像,以免不必要地浪费网络空间。
到目前为止,我决定在上传过程中不重命名文件,因此我不能在文件夹中使用 file_exists(),因为脚本不知道文件名。
我的问题是,PHP 中是否有办法检查特定文件夹中是否有任何文件,如果有,则将其删除。
如果您认为我对此采取了错误的方法并且应该例如将所有文件重命名为相同(我认为这是一个问题,因为我允许 4 种不同的常见图像格式)或保存“现有”文件的文件名并让脚本检查它,请告诉我。
【问题讨论】:
-
在手册中查找
glob()或opendir()/readdir()或scandir()。 -
为什么不重命名文件?如果您知道要查找的位置,事情就会变得容易得多。
-
不重命名文件也会给您的服务器带来安全问题。
-
所以你认为我应该重命名像 logo.jpg 这样的文件(根据原始文件的扩展名),然后在一个循环中检查一个名为 logo 的文件是否为 .png、.gif、. jpg, .jpeg 是否存在于具体文件夹中?
-
我建议使用命名函数,它将用户的 ID 设置为图像名称。然后,如果该用户决定更新图像,将保留其文件名,而无需经过 2-3 个不同的过程(上传、删除、重新上传)。为什么不能重命名?有什么特殊原因吗?
标签: php file-upload file-io directory