【问题标题】:Store and view image in SQL Server using ASP.NET C#使用 ASP.NET C# 在 SQL Server 中存储和查看图像
【发布时间】:2020-03-24 15:46:47
【问题描述】:

我对此真的很陌生,但我正在学习如何将图像存储在 SQL Server 数据库中。一切似乎都很好,但是无法在数据库中查看已存储的图像。我想知道有没有一种方法可以在数据库本身中存储和查看?

我的代码正确存储了图像,但我希望能够在 SQL Server 中单击它并显示图像:

FileUpload img = (FileUpload)imgUpload;
Byte[] imgByte = null;

if (img.HasFile && img.PostedFile != null)
{
    // To create a PostedFile
    HttpPostedFile File = imgUpload.PostedFile;

    // Create byte Array with file len
    imgByte = new Byte[File.ContentLength];

    // Force the control to load data in array
    File.InputStream.Read(imgByte, 0, File.ContentLength);
}

string query = "insert into dbo.sell_trans (photo ) values (@eimg)";
SqlCommand cmd = new SqlCommand(query, conn);

cmd.Parameters.AddWithValue("@eimg", imgByte);

cmd.ExecuteNonQuery();
conn.Close();

输出:

【问题讨论】:

  • 您想在 SSMS 中查看它吗?不确定是否有任何内置功能。但是,创建一个读取记录并显示图像的应用程序应该相对容易。可能少于 50 行代码。

标签: c# asp.net sql-server


【解决方案1】:

据我所知,没有直接的方法可以让您直接从数据库中查看您的图像,在它只是存储为二进制 blob 之后。

另一种方法是将图像存储在数据库之外,然后将图像 URL 输入到数据库字段中。

或者如@mason 所述,您可以编写简单的应用程序来显示您的图像。

【讨论】:

  • 因为我正在保存人员记录,所以我只想转到数据库并单击查看。无论如何谢谢你。
【解决方案2】:

您可以将这些图像存储为 Base64,您可以更轻松地查看它们,因为所有浏览器都可以呈现 base64 图像,您只需复制生成的哈希并粘贴到您的地址栏中,图像就会显示出来,你甚至可以在 <img src="base64Hash" /> 这样的标签内放置一个 base64 哈希,这样就可以了。但是将图像和其他文件保存在数据库中并不是一个好习惯,因为随着上传的发生,表的大小会增长得非常快。

我的建议是将这些文件存储在服务器内的目录中,或者使用 Amazon S3 或 Azure Blobs 等存储服务,而不是获取其路径并将其保存在数据库列中。

但无论如何,如果您仍想使用这种方法,我将粘贴一个 stackoverflow 问题,该问题显示如何从文件中获取 base64 并将其反转

Converting file into Base64String and back again

【讨论】:

  • 谢谢你,我会试试的。我认为有一种方法可以保存为 test.jpg 并直接单击并查看。
猜你喜欢
  • 2013-05-02
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2011-01-05
  • 1970-01-01
  • 2021-04-23
  • 2019-08-08
相关资源
最近更新 更多