Я храню изображения в виде массивов байтов внутри базы данных SQL.Почему мое изображение не отображается на мой взгляд?
Вот мой метод Index (внутри контроллера):
public ActionResult Index()
{
var list = db.UserProfiles.ToList();
Dictionary<int, ActionResult> picture = list.ToDictionary(item => item.CarID, item => CarPic(item.Picture));
ViewBag.CarPictures = picture;
return View(list);
}
Вот мой метод CarPic:
public ActionResult CarPic(byte[] imageBytes)
{
return imageBytes == null ? null : File(imageBytes, "image/jpeg");
}
Вот как я пытаюсь отобразить изображение внутри моей точки зрения:
foreach(var item in Model)
{
<img src="@ViewBag.CarPictures[item.CarID]"/>
}
Это то, что отображается в браузере:
Вот скриншот Intellisense:
Так Picture не равно нуля, то массив байт. Само изображение является JPEG. Вот код, я использую, чтобы преобразовать изображение в массив байтов, чтобы сохранить его в базе данных:
[Authorize]
[HttpPost]
public ActionResult Create(Stock stock, HttpPostedFileBase file)
{
if (file != null)
{
if (file.ContentType.Contains("image"))
{
using (var inputStream = file.InputStream)
{
var memoryStream = inputStream as MemoryStream;
if (memoryStream == null)
{
memoryStream = new MemoryStream();
inputStream.CopyTo(memoryStream);
}
var data = memoryStream.ToArray();
stock.Picture = data;
}
}
}
if (ModelState.IsValid)
{
db.UserProfiles.Add(stock);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(stock);
}
Я проверил базу данных и поле действительно заполняется. Вот моя модель Stock:
[Table("Stock")]
public class Stock
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int CarID { get; set; }
public byte[] Picture { get; set; }
//etc etc
}
Я рву на себе волосы здесь, пытаясь понять, почему это не работает, как я думаю, что я сделал все правильно. Что я делаю не так?
Большое спасибо
Благодарим, не могли бы вы разместить ссылку на использование 'data:' URI, я новичок в Razor и HTML – JMK
http://en.wikipedia.org/wiki/Data_URI_scheme – SLaks
'src =" data : image/png; base64, "' –
SLaks