如何使用asp.net核心从数据库中的特定行下载图像
Posted
技术标签:
【中文标题】如何使用asp.net核心从数据库中的特定行下载图像【英文标题】:How to download an image from specific row from database with asp.net core 【发布时间】:2021-11-28 23:04:33 【问题描述】:我想从数据库中获取图像并在我的 react-native 应用程序中显示它。我哪里出错了?
public IActionResult DownloadFile(int id)
DataTable table = new DataTable();
string query = @"select image from mydb.courses where id=@id";
string sqlDataSource = _configuration.GetConnectionString("UsersAppCon");
mysqlDataReader myReader;
using (MySqlConnection mycon = new MySqlConnection(sqlDataSource))
mycon.Open();
using (MySqlCommand myCommand = new MySqlCommand(query, mycon))
myReader = myCommand.ExecuteReader();
table.Load(myReader);
var fs = new FileStream(myReader, FileMode.Open);
return File(fs, "application/octet-stream");
myReader.Close();
mycon.Close();
【问题讨论】:
return
将阻止close()
被调用。要返回图像,请查看:***.com/questions/39177576/…
嗨@Ali Mahmoudi,错误信息是什么?你能分享你的反应组件吗?
嗨,格雷格和@Rena,我修好了
【参考方案1】:
我修好了。
[HttpGet("id")]
public IActionResult DownloadFile(int id)
string pathImage = "";
DataTable table = new DataTable();
string query = @"select image from mydb.courses where id=@id";
string sqlDataSource = _configuration.GetConnectionString("UsersAppCon");
MySqlDataReader myReader;
using (MySqlConnection mycon = new MySqlConnection(sqlDataSource))
mycon.Open();
using (MySqlCommand myCommand = new MySqlCommand(query, mycon))
myCommand.Parameters.AddWithValue("@id", id);
pathImage = (string)myCommand.ExecuteScalar();
mycon.Close();
var path = @$"pathImage";
var fs = new FileStream(path, FileMode.Open);
return File(fs, "image/jpeg");
【讨论】:
以上是关于如何使用asp.net核心从数据库中的特定行下载图像的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ASP.NET 核心 mvc 向 asp.net 核心中的 Web API 发出 PUT 请求?
如何从 ASP.NET C# 中的 SqlDataSource 获取特定的行值?
如何从 ASP.Net 核心中的 Json 文件中播种 NetTopologySuite.Geometries.Point 数据