У меня есть простое веб-приложение (ASP.NET MVC 5 C#), которое позволяет пользователям загружать несколько файлов (изображения на самом деле).Изменение размера изображения после загрузки и перед его сохранением в db
В настоящее время он хорошо работает, изображения хранятся в базе данных, и я могу их прочитать позже.
Но я хочу изменить размер изображений, прежде чем сохранять их в db, так как пользователь может загружать очень большие изображения.
Вот мой контроллер:
public ActionResult Create(Annonce annonce, IEnumerable<HttpPostedFileBase> photos)
{
if (ModelState.IsValid)
{
// Read each uploaded files and add if into the collection
foreach (HttpPostedFileBase fichier in photos)
{
if (fichier != null && fichier.ContentLength > 0)
{
// Making a new object
var photo = new Photo
{
FileName = System.IO.Path.GetFileName(fichier.FileName),
ContentType = fichier.ContentType
};
using (var reader = new System.IO.BinaryReader(fichier.InputStream))
{
photo.Content = reader.ReadBytes(fichier.ContentLength);
}
// Add the current image to the collection
annonce.Photos.Add(photo);
}
}
db.Annonces.Add(annonce);
db.SaveChanges();
return RedirectToAction("Details", new { id = annonce.ID });
}
return View(annonce);
}
Как я могу изменять размер изображений и все еще быть в состоянии сохранить их в БД? Возможно ли это?
Спасибо!
Спасибо, но как только у меня есть объект Bitmap, как я могу хранить его в БД? Я имею в виду, что эквивалентно этой строке: photo.Content = reader.ReadBytes (fichier.ContentLength); Но с растровым изображением? –
@Papadoc отредактировал мой ответ. Надеюсь, вы поняли, как это сделать. отметив мой ответ, как ответ будет приятным :) – Slashy