I'm working on a website where the user can upload some images. And I'm using HttpPostedFileBase
to get the uploaded image
Here is the Action header:
public async Task<ActionResult> Create(Advert advert, HttpPostedFileBase FileURL)
I can save the image using FileURL.SaveAs(HttpContext.Server.MapPath(fileName))
where fileName
is a parameter i generate randomly, and everything is working perfectly.
Now I want to generate a thumbnail for my image, so I wrote the next method:
public static void SaveJpeg(string path, HttpPostedFileBase uploadedFile, int quality)
{
if (quality < 0 || quality > 100)
throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");
// Encoder parameter for image quality
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
// JPEG image codec
ImageCodecInfo codec = GetEncoderInfo("image/jpeg");
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
Image img = Image.FromStream(uploadedFile.InputStream);
var thumbnail = img.GetThumbnailImage(img.Width / 5, img.Height / 5, null, IntPtr.Zero);
//img.Save(path, codec, encoderParams);
thumbnail.Save(path, codec, encoderParams);
}
But I'm getting A generic error occured in GDI+
error when saving the thumbnail
PS: I tested my code on local image (passing Image
to the method) and everything worked well.
Please help.
Thanks in advance :)