C# 在服务器上保存文件

C# 在服务器上保存文件,c#,asp.net,C#,Asp.net,我正在为我课程的项目开发一个网站。这是一个有很多用户的系统,每个用户都可以在服务器上上传文件。现在我有两种实施方法: 创建一个名为files的文件夹,上载其中的文件并从中检索 每个用户都有一个不同的文件夹,并在其中上载文件 第二种方法的实现很简单,但我认为创建很多文件夹(每个用户都有不同的文件夹)可能会降低每个用户尝试从服务器加载它们时的速度 你怎么看? 什么方法更好 基本上,使用外键在数据库中保存文件和用户的关联。例如: File -------- FileId int UserId (FK)

我正在为我课程的项目开发一个网站。这是一个有很多用户的系统,每个用户都可以在服务器上上传文件。现在我有两种实施方法:

  • 创建一个名为files的文件夹,上载其中的文件并从中检索
  • 每个用户都有一个不同的文件夹,并在其中上载文件
  • 第二种方法的实现很简单,但我认为创建很多文件夹(每个用户都有不同的文件夹)可能会降低每个用户尝试从服务器加载它们时的速度

    你怎么看?
    什么方法更好

    基本上,使用外键在数据库中保存
    文件
    用户
    的关联。例如:

    File
    --------
    FileId int
    UserId (FK) int
    PathToFile nvarchar
    
    然后,只需将文件的路径保存到表中,并将实际文件保留在计算机文件系统中

    然后在应用程序中,您可以检索
    User Foo
    的文件列表,并轻松地提供它们


    这个过程在ASP.NETWebForms和ASP.NETMVC之间有所不同。您使用的是哪种?

    基本上,使用外键在数据库中保存
    文件
    用户
    的关联。例如:

    File
    --------
    FileId int
    UserId (FK) int
    PathToFile nvarchar
    
    然后,只需将文件的路径保存到表中,并将实际文件保留在计算机文件系统中

    然后在应用程序中,您可以检索
    User Foo
    的文件列表,并轻松地提供它们


    这个过程在ASP.NETWebForms和ASP.NETMVC之间有所不同。您使用的是哪一个?

    更好的方法是使用一个名为
    uploads
    的文件夹

    用户每次上载文件、生成GUID并将此GUID指定为文件名时。这将确保文件名永远不会冲突

    保存文件后,将以下内容存储在数据库中:用户给定的原始文件名、文件的GUID名称和用户ID

    您现在可以检索任何用户上载的文件,方法是首先从数据库中查找GUID,然后从文件系统中获取文件


    您可以使用该方法生成guid。

    更好的方法是使用一个名为
    uploads
    的文件夹

    用户每次上载文件、生成GUID并将此GUID指定为文件名时。这将确保文件名永远不会冲突

    保存文件后,将以下内容存储在数据库中:用户给定的原始文件名、文件的GUID名称和用户ID

    您现在可以检索任何用户上载的文件,方法是首先从数据库中查找GUID,然后从文件系统中获取文件


    您可以使用该方法生成guid。

    我看不出选择2有任何重大问题。要知道。将guid附加到文件名将保持文件名的唯一性。将文件作为下载文件提供给用户时,您可以从文件名中删除该guid。

    我看不出选项2有任何重大问题。要知道。将guid附加到文件名将保持文件名的唯一性。将文件作为下载文件提供给用户时,您可以从文件名中删除该guid。

    这不会影响性能,请选择您最喜欢的。是的!正如gdoron所说,两者都将使用相同数量的内存/cpu.Web表单还是MVC?你潜在的目标用户是多少?这不会影响性能,选择你最喜欢的。是的!正如gdoron所说,两者都将使用相同数量的内存/cpu.Web表单还是MVC?你们的潜在目标是多少用户?-1并没有提到在数据库中存储文件。@Madcoder:我编辑了我的答案以便更清楚。我的意思不是“将文件保存到数据库”。-1没有提到在数据库中存储文件。@Madcoder:我编辑了我的答案以便更清楚。我不是说“将文件保存到数据库”