How to get the dimensions of an uploaded image in ASP.NET MVC?
This is my FileHelper class to upload a file:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.Mvc;
namespace workflow.helpers
{
public class FileHelper
{
private HttpPostedFileBase file {get; set;}
public bool ValidFile { get; set;}
public FileHelper(HttpPostedFileBase File, string Extensions, int MaxSize=1, bool IsImage = true, string Dimensions="")
{
this.file = File;
validateFile(Extensions, MaxSize, IsImage, Dimensions);
}
public string uploadFile()
{
if (this.file.ContentLength > 0)
{
if (this.ValidFile)
{
var fileName = Path.GetFileName(this.file.FileName);
var path = Path.Combine(HttpContext.Current.Server.MapPath("~/sharedfiles/uploads/images"), fileName);
this.file.SaveAs(path);
return this.file.FileName;
}
else return "invalid file";
}
return "";
}
private void validateFile(string extensions, int MaxSize, bool IsImage = true, string Dimensions )
{
if (extensions.Contains(Path.GetExtension(this.file.FileName).Replace(".", "")))
{
if ((((double)(file.ContentLength) / 1024) / 1024) < MaxSize)
this.ValidFile = true;
}
else
this.ValidFile = false;
}
}
}
But still I do not know if it is possible in to check the dimensions of the uploaded image in this class.
I think the link here could be useful
private string GetImageDimension()
{
System.IO.Stream stream = fu1.PostedFile.InputStream;
System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
int height = image.Height;
int width = image.Width;
return "Height: " + height + "; Width: " + width;
}
you can get the InputStream, it is available as property in the HttpPostedFileBase object, easily you can get it if you write file.InputStream
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With