GetImage 동작 메서드를 직접 호출하면 (예 : localserver/admin/GetImage?ProductID=36
) 파일을 다운로드하라는 메시지가 표시됩니다. 다운로드시 파일이 올바른 확장자를 가지고 있어도 열리지 않습니다. 내 그림 폴더의 일반 * .jpeg 이미지로 테스트하십시오. 또한 파일을 데이터베이스에 저장할 때 파일 이름을 어떻게 설정합니까? 파일 이름에 대해 데이터베이스에 추가 varchar 유형 등의 필드를 만들어야합니까?FileContentResult 및 HttpPostedFileBase를 사용하여 올바른 이미지 파일을 저장하고 반환하는 데 문제가 있습니다.
productMedia.ImageData에 일단 할당되면 데이터도 모두 0이므로 null이됩니다. 거기에 다양한 숫자가있는 "이미지"와는 다릅니다. 어쩌면 그것은 image.InputStream.Write가 아니고 image.InputStream.Read가 아닌가? 그것을 시도했지만 여전히가 없습니다.
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 방법 : 올바른 콘텐츠 유형에 대한 귀하의 저장 프로 시저를 확인하여 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;
}
}
ImageData에 varbinary (MAX)를 사용합니다. – LaserBeak