ASP.Core中上传文件:如何使用Dapper将二进制文件存储在数据库表中并插入数据。
创始人
2024-11-11 20:00:55
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插入数据。

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...