Creating Image object using System.Drawing.Image.FromFile

asp.net, c#, image

Solution

use `Server.MapPath` to fetch the image from the server. As follows

System.Drawing.Image img = 
      System.Drawing.Image.FromFile(Server.MapPath("Uploads/"+dir+"/"+fName), true);  

You can use following as well

- Server.MapPath(".") returns the current physical directory of the file (e.g. aspx) being executed

- Server.MapPath("..") returns the parent directory

- Server.MapPath("~") returns the physical path to the root of the application

- Server.MapPath("/") returns the physical path to the root of the domain name (is not necessarily the same as the root of the application)

References Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). What is the difference?

Problem

I am trying to get the image dimensions of an image that user selects from list box. Image files are available on FTP server. I am displaying file names in a list box for users to select. Upon selection, I want to show the preview of image, for that I want to get dimensions so that I can resize it if i need to. I am storing file name that is linked to currently selected list item into a string variable. I know that path on the server. I am using following code to create the Image object, but having no luck ``` try { string dir = Session["currentUser"].ToString(); System.Drawing.Image img = System.Drawing.Image.FromFile("~/Uploads/"+dir+"/"+fName, true); //ERROR here, it gives me file URL as error message! } catch(Exception ex) { lbl_Err.Text = ex.Message; } ``` Not sure what is going wrong. Any ideas?

Original source

Related problems