如何在后台asp.net mvc中控制图像的大小



我有表单,管理员应该选择一张图片。图片必须是400*300。当管理员上传未注释的照片时,我如何发送验证消息?

public ActionResult Gallery(Gallery gallery, HttpPostedFileBase imageUrl)
{
if (imageUrl.ContentLength > 0)
{
var fileName = Path.GetFileName(imageUrl.ToString());
var path = Path.Combine(Server.MapPath("~/Uploads/Images"), 
fileName);
imageUrl.SaveAs(path);
}
else
{
return View();
}
}

使用保存文件之前

imageUrl.SaveAs(path);

正如你所做的,你可以首先创建一个图像,像这样:

Image myImage = Image.FromStream(imageUrl.InputStream);

图像类上有关于图像的信息,你也可以从图像中保存:

if (myImage.Height != 400 || myImage.Width != 300) {
// ... your code the inform the user
} else {
myImage.Save(path);
}

然而,你也可以在C#代码中缩小照片的大小,而不是强迫用户上传一张宽度和高度完全正确的照片(用户可能没有这样的照片(。我通常在nuget上使用ThumbnailSharp。我认为这会给用户带来更好的用户体验。

使用FileInfo属性获取文件大小(以字节为单位(,Bitmap包含文件大小(宽度和高度(。您现在可以在imgHeightimgWidth上进行测试

我认为您只需要位图属性,但以防万一,我还将文件大小的代码以字节为单位。

FileInfo file = new FileInfo(open.FileName);
var sizeInBytes = file.Length;
Bitmap img = new Bitmap(open.FileName);
var imgHeight = img.Height;
var imgWidth = img.Width;

最新更新