使用数组显示数据库中的多个图像

时间:2018-11-12 16:57:02

标签: c# asp.net-mvc razor model-view-controller asp.net-mvc-5

嗨,我正在尝试显示数据库中的图像,我将图像保存在数据库中,但是没有显示任何内容,我该如何在我的代码中修复此问题

这是我的模型视图

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace Archive.Models
{
    public class Inbox
    {
        [Key]

        public int Id { get; set; }

        public IEnumerable<HttpPostedFileBase> Files { get; set; }


        public ApplicationUser User { get; set; }
        public object UserId { get; internal set; }
    }
}

以及此处的详细信息

    namespace Archive.Models
{
    public class AllFiles
    {
        public int Id { get; set; }
        public string ContentType{ get; set; }
        public byte[] Imagebytes { get; set; }
    }
}

此处是我的转化

using System.Web;
using System.IO;

namespace FileUpload.Service
{
    public class FileUploadService
    {
        // GET: AllFiles
        public void saveFileDetails(HttpPostedFileBase file)
        {
            AllFiles newfile = new AllFiles();
            newfile.ContentType = file.ContentType;
            newfile.Imagebytes = ConvertToBytes(file);
            ApplicationDbContext db = new ApplicationDbContext();
            {
                db.AllFiless.Add(newfile);
                db.SaveChanges();      
            }
        }
        public byte[] ConvertToBytes(HttpPostedFileBase file)
        {
            byte[] imagebytes = null;
            BinaryReader reader = new BinaryReader(file.InputStream);
            imagebytes = reader.ReadBytes((int)file.ContentLength);
            return imagebytes;
        }
    }
}

这是我的控制器

        public async Task<ActionResult> Create(Inbox model)
    {

        var currentUser = await manager.FindByIdAsync(User.Identity.GetUserId());
        if (ModelState.IsValid)
        {
            model.User = currentUser;

            FileUploadService service = new FileUploadService();
            foreach (var item in model.Files)
            {
                service.saveFileDetails(item);
            }

                var max = new Inbox();

            db.Inboxs.Add(model);
            db.SaveChanges();
            string url = Url.Action("List");
            return Json(new { success = true, url = url });
        }
        return View(model);
    }

这是我的查看详细信息

    @foreach(var image in Model)
{
    var base64 = Convert.ToBase64String(image.Files);
    var imgSrc = String.Format("data:{0};base64,{1}",image.ContentType ,base64);
    <img src="@imgSrc"/>
}

我正在尝试在此处显示图像,但没有显示出什么问题,请大家,我在这里很努力地尝试,但是我没有得到images

这样保存在数据库中的图像 here

0 个答案:

没有答案