Как хранить и ретейвировать изображения в виде двоичных данных в SQL server
Привет
У меня есть
элемент в моем html-файле. Когда пользователь выбирает свое изображение, я получаю выбранное изображение с помощью JavaScript и отправляю его контроллеру в виде JSON:
var _Data = { Image = $("#ImageFileUpload").val();
и в моем контроллере я сохраняю его в своей базе данных:
byte[] binData; byte[] byteArrey = System.Text.Encoding.UTF8.GetBytes(_LawyerArgument.Picture); MemoryStream _Stream = new MemoryStream(byteArrey); UserPicture _UserPicture = _LawEntities.UserPicture .Where(c => c.UserId == _UserID).SingleOrDefault(); if (_UserPicture != null) { using (var _BinaryReader = new BinaryReader(_Stream)) { binData = _BinaryReader.ReadBytes(Int32.Parse(_Stream.Length.ToString())); _BinaryReader.Close(); } _UserPicture.picture = binData; } else { _UserPicture = new UserPicture(); using (var _BinaryReader = new BinaryReader(_Stream)) { binData = _BinaryReader.ReadBytes(Int32.Parse(_Stream.Length.ToString())); _BinaryReader.Close(); } _UserPicture.picture = binData; _LawEntities.UserPicture.Add(_UserPicture); } _LawEntities.SaveChanges();
он хранит запись в моей таблице, и я могу видеть двоичные данные как изображение, но я думаю, что ошибаюсь в вставке или извлечении данных. потому что, когда я хочу показать выбранное изображение пользователю на веб-сайте, оно не показывает изображение. У меня нет ошибок ни в отладке, ни во время выполнения.
Я получаю изображение по этим кодам:
var _LawyerPictures = _Law.UserPicture .Take(4) .Select(s => new { Picture = s.picture, ID = s.UserId }).ToList(); foreach (var item in _LawyerPictures) { string _Path = Path.Combine(Directory.GetCurrentDirectory(), @"/TemporaryUserPictures/"); if (!Directory.Exists(_Path)) { Directory.CreateDirectory(_Path); var path = HttpContext.Current.Server.MapPath(_Path + item.ID + ".png"); File.WriteAllBytes(path, item.Picture); } }
Я сохраняю изображения во временную папку, а затем использую ее, чтобы показать их.
Что я уже пробовал:
Я пробовал коды выше, но я не знаю, где у меня проблема, в хранении изображения или в извлечении.
заранее спасибо