当userA上传文件时,他的文件将上传到folderA,当userB,上传到folderB,依此类推。 ASP.NET中的角色/配置文件。文件夹将预先存在。任何人吗?

有帮助吗?

解决方案

你可能想要手动编码。 ASP.NET管理用户文件没有任何内在功能。但是,这样做的代码应该相对容易。假设用户名是唯一的且永远不会更改,您可以将用户名与路径(使用Path.Combine)组合并上传到该位置。我也会锁定该位置,以便其他人无法访问它。

其他提示

我过去做过的方法是使用基本上传文件夹(比如上传),然后在该文件夹中使用来自数据库的用户ID创建一个文件夹。因此,对于用户ID为145的用户,结构将为.. \ uploads \ 145。

我的代码所做的第一件事是检查文件夹是否存在,如果没有,则在上传之前调用Directory.Create()(或其他语法)来创建文件夹。

您可能会发现有用的更多信息:我还使用GUID重命名该文件,如果他们上传了2个具有相同名称的文件,则可以避免名称冲突。缺点是您通常需要维护一个包含原始文件名和物理(GUID)文件名的表。

您可以检查文件夹是否存在并为用户创建(如果该文件夹不存在),但这会对此产生安全隐患。您可能还想尝试将数据存储在数据库中并将其绑定到用户......这取决于您猜测用户上传的内容。

有几种方法可以做到这一点:

使用表单身份验证

如果使用表单身份验证,则可以设置一种约定,其中用户的用户名或ID可以作为服务器中用户可以上载文件的路径的基础。请注意,您的用户无法直接访问该文件夹:用户也应该能够通过您的Web应用程序从您的服务器下载文件。

使用Windows身份验证

如果您使用Windows(例如,ActiveDirectory)身份验证,则可以通过Web应用程序为用户提供对文件夹的物理位置的访问权限。

P.S。 - 很高兴在这里见到Marlon!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top