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?