Как показывать изображения с SqlServer?

Я стараюсь показывать мои изображения с моей базы данных и он показывает меня так:

introducir la descripción de la imagen aquí

Но мне не показывает никакой ошибки NI в консоли браузера.

У меня есть мой класс ClsImagen:

public class ClsImagen
{
    [DataType(DataType.Upload)]
    [Display(Name = "Subir Archivo")]
    [Required(ErrorMessage = "Por favor, suba un archivo.")]
    public string file { get; set; }
}

В моем драйвере у меня есть следующее:

    public ActionResult MostrarImagen()
    {
        return View(listarImagenes());
    }

    List listarImagenes()
    {
        List temporal = new List();

        SqlConnection bdConn = new SqlConnection("Server=LAPTOP-SFTPM9NF; Database=Negocios2018; Integrated Security=true");
        using (var bdCmd = new SqlCommand("SELECT * FROM TBL_IMAGENES", bdConn))
        {
            try
            {
                bdCmd.CommandType = CommandType.Text;
                bdConn.Open();

                SqlDataReader reader = bdCmd.ExecuteReader();

                while (reader.Read())
                {
                    ClsImagen img = new ClsImagen();
                    img.file = reader["imagen"].ToString();

                    temporal.Add(img);
                }
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                bdConn.Close();

                bdCmd.Dispose();
                bdConn.Dispose();
            }
        }
        return temporal;
    }

И в моем виде следующее:

@using System.Text;
@model IEnumerable

@{
    ViewBag.Title = "MostrarImagen";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

MostrarImagen

@Html.ActionLink("Create New", "Create")

@foreach (var item in Model) { }
@Html.DisplayNameFor(model => model.file)
@{ byte[] bytes = Encoding.ASCII.GetBytes(item.file); var bytes64 = Convert.ToBase64String(bytes); var imgsrc = String.Format("data:image/png;base64,{0}", bytes64); } @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) | @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) | @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })

То, что я стараюсь делать в моем виде, состоит в том, чтобы обращать string в договоренность байт и договоренности байт один stringBase64. В конце концов я размещаю формат изображения и выполнив, он не показывает мне изображение.

Я не знаю, что он может вызывать эту проблему.

0
задан 26.08.2019, 07:46
1 ответ

Ты можешь использовать этот пример:

View:

<img src='@Url.Action("GetImage", "DemoController", new { id = item.FileAttachment.Id })' >

Controller:

public FileContentResult GetImage(int id)
{
    var dataContext = db.FileAttachments.FirstOrDefault(m => m.Id == id);
    if (dataContext != null)
    {
        return File(dataContext.FileData, dataContext.FileMimeType, dataContext.FileName);
    }
    else
    {
        return null;
    }
}

Надеялся, что он этому помогает...

0
ответ дан 01.12.2019, 19:41

Теги

Похожие вопросы