.Net Core上传文件和下载文件

在.NET Core Web API中,你可以将文件保存到数据库中,可以通过以下步骤实现:

1.创建一个用于存储文件数据的数据库表,通常包含以下列:文件名、文件类型、文件大小和文件数据(字节流)。

2.在你的.NET Core Web API应用程序中,使用实体框架或其他ORM(对象关系映射)库创建一个与该表对应的实体类。

3.创建一个控制器动作,该动作将接收要保存的文件,并将其保存到数据库中。可以使用以下代码将文件数据保存到数据库中:

[HttpPost("upload")]
public async Task<ActionResult> Upload(IFormFile file)//上传文件
{
    var fileData = new byte[file.Length];
    using (var ms = new MemoryStream())
    {
        await file.CopyToAsync(ms);
        fileData = ms.ToArray();
    }
    var myFile = new MyFile 
    { 
        FileName = file.FileName, 
        FileType = file.ContentType, 
        FileSize = file.Length, 
        FileData = fileData 
    };
    //插入数据库方法
    await _db.Insertable(myFile).ExecommandAsync();//示例是SqlSugar,也可以用EF CORE
    return Ok();
}

4.创建一个控制器动作,该动作将从数据库检索文件数据并将其作为响应返回给客户端。可以使用以下代码从数据库中检索文件数据:

[HttpGet("{id}")]
public async Task<ActionResult> Download(int id)//下载文件
{        
    //查询存储的文件信息
    var myFile = await _db.Queryable<MyFiles>().FirstAsync(f => f.Id == id);
    if (myFile == null)
    {
        return NotFound();
    }
    return File(myFile.FileData, myFile.FileType, myFile.FileName);
}

这些代码片段假定你已经具有关于.NET Core Web API、实体框架和基本C#编程的知识,并且在你的应用程序中已经存在一个DbContext对象。


果糖网