ASP.Core中上传文件:如何使用Dapper将二进制文件存储在数据库表中并插入数据。
创始人
2024-11-11 20:00:03
0次

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 Upload(IFormFile file) { if (file != null && file.Length > 0) { var fileName = Path.GetFileName(file.FileName); var contentType = file.ContentType; var contentLength = file.Length;

    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插入数据。

相关内容

热门资讯

重大通报透视器!娱家麻将透视器... 重大通报透视器!娱家麻将透视器AI脚本,娱家麻将多功能切实真的是有透视器脚本1、娱家麻将辅助软件下载...
重大消息开挂!家乡大贰开挂AI... 重大消息开挂!家乡大贰开挂AI插件,家乡大贰多功能果然有开挂插件家乡大贰脚本下载中分为三种模型:家乡...
玩家必看科普外挂!河洛杠次外挂... 玩家必看科普外挂!河洛杠次外挂AI工具,河洛杠次多功能一直是真的有外挂工具亲,关键说明,河洛杠次透视...
重大来袭开挂!广西老友玩开挂A... 重大来袭开挂!广西老友玩开挂AIapp,广西老友玩多功能竟然有开挂app1、每一步都需要思考,不同水...
科技揭秘透视挂!嘟咪互动麻将透... 科技揭秘透视挂!嘟咪互动麻将透视挂AI插件,嘟咪互动麻将多功能竟然是有透视挂插件1、玩家可以在嘟咪互...
盘点几款辅助器!微乐河北麻将辅... 盘点几款辅助器!微乐河北麻将辅助器AI工具,微乐河北麻将多功能竟然存在有辅助器工具盘点几款辅助器!微...
盘点一款透视挂!星际互联透视挂... 盘点一款透视挂!星际互联透视挂AI方法,星际互联多功能竟然是有透视挂方法1、星际互联破解器简单,星际...
推荐十款开挂!MG棋牌开挂AI... 推荐十款开挂!MG棋牌开挂AI教程,MG棋牌多功能一直是真的有开挂教程1、每一步都需要思考,不同水平...
记者揭秘辅助器!大圣天辅助器A... 记者揭秘辅助器!大圣天辅助器AI教程,大圣天多功能切实真的有辅助器教程1)大圣天免费钻石:进一步探索...
技术分享作弊器!赣牌圈打炸作弊... 技术分享作弊器!赣牌圈打炸作弊器AI插件,赣牌圈打炸多功能确实是有作弊器插件1、起透看视 赣牌圈打炸...