在php中使用id搜索文件

时间:2013-06-25 20:59:20

标签: php file

我创建了一个网站,用户可以上传不同的文件,以后可以通过他们的个人资料访问这些文件。随着时间的推移,我意识到这种为用户创建文件夹和子文件夹的方法非常麻烦,因为它创建了许多文件夹和子文件夹,因为更多的用户加入并使用我的网站。我现在想为所有文件创建一个文件夹,但是动态地将用户的文件重命名为USERID-FILENAME

当我想向特定用户显示文件时,问题出现了;我想搜索文件夹中的文件,然后获取以特定用户ID开头的文件,例如,如果其用户为id 200,我想在第一个连字符之前获取所有200个文件并显示它们。

如何实现这一目标并且它是最好的使用方法?

2 个答案:

答案 0 :(得分:0)

或许这样的事情:

foreach (glob( ((int)'$userid')'-*') as $file) {
    process($file);
}

答案 1 :(得分:0)

你可能想要更像这个工作的数据库或键值存储,而不是你的文件系统,如果你的网站显着增长,它将无法很好地扩展。

例如,您可以使用<userid>-<filename>之类的内容作为键值存储中的键,将文件内容设置为值,编码为二进制blob。

除此之外,您可能需要一个描述符来跟踪用户上传过的所有文件,可能是由用户标识或<userid>-files

等直接键入的。

然后,当您查找用户时,首先加载他们的<userid>-files描述符,使用它来显示他们访问/控制/拥有的文件列表,然后在他们请求时查找<userid>-<filename>具体文件。

再考虑一下,这可能不足以处理用户多次上传同一文件的情况 - 您可能希望为文件本身分配ID,并将这些ID保留在{{1}中} blob。这具有额外的优势,即用于存储文件的模式是用户无关的,因此您可以开始扩展您的服务以实现共享功能(可能还有另一大块数据描述共享/访问控制属性)。