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

相关内容

热门资讯

今天上午!wepoker免费辅... 今天上午!wepoker免费辅助器(透视)一直真的有辅助下载(有挂规律)-哔哩哔哩1、下载好wepo...
透视ai代打!wepoker游... 透视ai代打!wepoker游戏下载(透视)一直是真的辅助安装(有挂秘诀)-哔哩哔哩透视ai代打!w...
今天下午!wepoker有没有... 今天下午!wepoker有没有机器人(透视)本来是真的辅助平台(有挂分析)-哔哩哔哩1、wepoke...
有了最新消息!aapoker公... 有了最新消息!aapoker公共底牌(透视)一直存在有辅助插件(有挂方针)-哔哩哔哩1、进入游戏-大...
透视实锤!德州局透视脚本免费版... 透视实锤!德州局透视脚本免费版下载手机版(透视)竟然真的有辅助插件(有挂方法)-哔哩哔哩一、德州局透...
透视私人局!uupoker透视... 透视私人局!uupoker透视(透视)一直真的有辅助工具(真是有挂)-哔哩哔哩1、首先打开uupok...
透视脚本!newpoker脚本... 透视脚本!newpoker脚本(透视)果然存在有辅助软件(真的有挂)-哔哩哔哩运newpoker脚本...
今天下午!wpk真的有透视嘛(... 今天下午!wpk真的有透视嘛(透视)确实真的是有辅助修改器(有挂透明挂)-哔哩哔哩1、wpk真的有透...
在玩家背景下!wepoker辅... 在玩家背景下!wepoker辅助器激活码(透视)好像是有辅助平台(竟然有挂)-哔哩哔哩暗藏猫腻,小编...
于此同时!wepokerplu... 于此同时!wepokerplus万能挂(透视)好像是有辅助工具(详细教程)-哔哩哔哩小薇(辅助器软件...