2013-02-27 48 views
0

我正在开发一个Web项目,它在不同的应用程序中分开(使用SSO为用户在所有应用程序上同时登录),用户可以在其中上传所有文件。文件上传和配额

问题是,每个应用都以自己的方式将文件上传到自己的位置,使服务器混乱并丢失了哪个文件所属的路径。

我想开发这个组件,以所有的应用程序,通过它上传和跟踪每个用户的配额,文件等

,我可以想出如何做这我自己,我想知道如果这样做有很好的做法。有什么文章可以阅读吗?有没有可用的系统? 另外,如果你想知道,我正在用PHP做。

+0

[你去!](http://www.php.net/manual/en/ref.filesystem.php) – Sammitch 2013-02-27 16:13:41

回答

1

你需要的第一件事就是开始:)因为这是编程毕竟是试验和错误。你可能会发现自己必须重新开始工作,但这是在工作描述中。

但我同意在开始之前有一个计划是非常有用的。我不知道任何教程都包含正确的做法和标准,但我会尽力给你一些提示。

  • 总是检查MIME类型,扩展名和文件大小。您还可以阻止某些类型的文件的.htaccess以防万一您忘记或不小心的话

<FilesMatch ".(htaccess|htpasswd|php|js|exe|bat)$"> // extentions to block 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

您也可以考虑有一个白名单,而不是黑名单。

  • 有一些明确定义的位置,这很大程度上取决于您需要的文件数量以及为什么需要它们。

如果你有很多文件,你可以用散列表的形式创建一个文件夹结构。例如,您可以剥离非字母数字字符,并根据文件的第一个字母创建2级文件夹。

实施例:

test_image.png =>上传/ app_x /t/e/ test_image.png

another_img.png =>上传/ app_x /a/n/ test_image.png


您也可以使用此日期(如wordpress呢):

test_image.png =>上传/ app_x /2013/02/27/ test_image.png

another_img.png =>上传/ app_x /2013/02/26/ test_image。PNG


如果有用户上传的文件,你可能要为每个用户创建(上传/ app_y/user_x/his_file.pdf)的文件夹。

这将使查找服务器上的文件快得多。在开始之前考虑文件夹结构是件好事,考虑所有可能的文件类型是很好的。

  • 考虑在必要时更改文件的名称。这取决于您是否希望将文件公开显示或不显示。

当我回到家时,会继续这个清单,但这应该是一些值得思考的食物。

+0

我会接受你的答案,因为它去了我的。但是,我们决定使用ownCloud为此:)谢谢您的回答 – 2013-03-07 09:41:38

+0

谢谢。祝你的项目好运! – 2013-03-07 10:04:37