.net MVC表单以上传文件和其他字段EF

时间:2018-06-22 00:23:18

标签: .net sql-server forms entity-framework model-view-controller

我有一个.net MVC EF应用程序。我需要创建一个表格来将文件和其他字段上传到数据库中(例如文件本身以及文件描述,类别等)。我在具有FileStream的SQL Server数据库中有一个表(因此为varbinary(max))。

表:     CREATE TABLE [dbo].[MyDocuments]( [ID] [uniqueidentifier] NOT NULL, [docID] [uniqueidentifier] ROWGUIDCOL NOT NULL, [document] [varbinary](max) FILESTREAM NOT NULL, [docName] [nvarchar](40) NOT NULL, [docLink] [nvarchar](max) NULL, [docCategory] [text] NULL, [docPermission] [nvarchar](15) NULL, [docTeam] [nvarchar](15) NULL, [docAssigmentDate] [date] NULL, [docCompletedDate] [date] NULL, [docArchivedDate] [date] NULL)

型号:

public partial class MyDocument
{
    public System.Guid ID { get; set; }
    public System.Guid docID { get; set; }
    public byte[] document { get; set; }
    public string docName { get; set; }
    public string docLink { get; set; }
    public string docCategory { get; set; }
    public string docPermission { get; set; }
    public string docTeam { get; set; }
    public Nullable<System.DateTime> docAssigmentDate { get; set; }
    public Nullable<System.DateTime> docCompletedDate { get; set; }
    public Nullable<System.DateTime> docArchivedDate { get; set; }
}

我需要有一个表格,允许用户输入信息,包括浏览文件以上传所有内容并将其提交到数据库表中。因此,我需要有关Controller和View的帮助。是否有一个很好的示例代码或有关如何执行此操作的说明。一些例子肯定会有所帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 您的表格必须使用<form method="POST" enctype="multipart/form-data"></form>
  2. 在操作中,您需要使用IFormFile yourformfiledname来接收数据(获取字节数组)
  3. 然后您可以根据需要将其保存到服务器上的文件中,也可以将其保存到数据库中

对不起,我的回答是针对Asp.net-Core
对于asp.net,我认为您可以使用HttpContext.Current.Request.File来接收文件