4

当用户A上传文件时,他的文件将上传到文件夹A,当用户B时,将上传到文件夹B,依此类推。ASP.NET 中的角色/配置文件。文件夹将是预先存在的。任何人?

4

4 回答 4

5

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

于 2008-09-24T04:55:29.047 回答
3

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

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

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

于 2008-09-24T05:11:47.543 回答
0

您可以检查文件夹是否存在,如果不存在则为用户创建它,但这会带来安全隐患。您可能还想尝试将数据存储在数据库中并将其绑定到用户..这取决于您让用户上传的内容我猜。

于 2008-09-24T04:56:07.737 回答
0

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

使用表单身份验证

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

使用 Windows 身份验证

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

PS - 很高兴在这里见到你,马龙!

于 2008-09-24T05:01:45.850 回答