Если я вызываю метод действия GetImage напрямую, то есть: localserver/admin/GetImage?ProductID=36
, он предлагает мне загрузить файл.После загрузки, даже если файл имеет правильное расширение, он не открывается, тестируя обычные изображения * .jpeg из папки «Мои рисунки».Также, как мне задать имя файла при сохранении файла в базу данных, нужно ли создавать дополнительное поле типа varchar и т. Д. В базе данных только для имени файла?
После присвоения productMedia.ImageData данные также имеют все нули, следовательно, ноль.В отличие от «изображения», в котором есть различные цифры.Может быть, это должно быть image.InputStream.Write, а не image.InputStream.Read?Пробовал, но все еще не пошел.
Просмотр
@using (Html.BeginForm("SaveProduct", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
Вот процедура сохранения:
if (image != null)
{
var ProductMedia = new ProductMedia();
ProductMedia.ImageMimeType = image.ContentType;
ProductMedia.ImageData = new byte[image.ContentLength];
image.InputStream.Read(ProductMedia.ImageData, 0, image.ContentLength);
ProductMedia.ProductID = product.ProductID;
context.ProductMedias.AddObject(ProductMedia);
context.SaveChanges();
}
и метод GetImage:
public FileContentResult GetImage(int productID)
{
var ProductImages = context.ProductMedias.FirstOrDefault(x => x.ProductID == productID);
if (ProductImages != null)
{
return File(ProductImages.ImageData, ProductImages.ImageMimeType);
}
else
{
return null;
}
}