1、首先,需要添加以下命名空间和引用: using System.Data.SqlClient; using Microsoft.AspNetCore.Http; using Dapper; using System.IO;
2、创建一个存储数据的表,包括文件名称、文件大小、文件类型和二进制数据字段。(如果需要存储文件的其它属性,也可以添加进来)
CREATE TABLE [dbo].[FileTable]( [Id] [int] IDENTITY(1,1) NOT NULL, [FileName] nvarchar NOT NULL, [ContentType] nvarchar NOT NULL, [ContentLength] [bigint] NOT NULL, [BinaryData] varbinary NOT NULL, CONSTRAINT [PK_FileTable] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
3、创建一个控制器,其中包括一个上传文件的方法:
public async Task
using (var binaryReader = new BinaryReader(file.OpenReadStream()))
{
var binaryData = binaryReader.ReadBytes((int)contentLength);
var connectionString = "your_connection_string";
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var query = "INSERT INTO FileTable (FileName, ContentType, ContentLength, BinaryData) VALUES (@FileName, @ContentType, @ContentLength, @BinaryData)";
var parameters = new { FileName = fileName, ContentType = contentType, ContentLength = contentLength, BinaryData = binaryData };
await connection.ExecuteAsync(query, parameters);
}
}
}
return RedirectToAction("Index");
}
4、在视图页面上添加一个文件上传表单:
@using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" })) { }
这样,在ASP.Core应用程序中就可以实现将二进制文件存储在数据库表中,并使用Dapper插入数据。