Search code examples
c#asp.netserver.mappath

How to read a relative web path with Server.MapPath with space character in filename or path in C#


What i get is

src = Request.QueryString["imgsrc"];//src = "images/file 15.jpeg";

System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(src));

the second line returns System.IO.FileNotFoundException cause of the space in the path.

What should i do to encode or do something to read this kind of paths;


Solution

  • Assign Server.MapPath(src) to a temporary variable and then make sure that the path points to an existing file:

    src = Request.QueryString["imgsrc"];//src = "images/file 15.jpeg";
    
    string tempPath = Server.MapPath(src);
    
    Debug.Assert(System.IO.File.Exists(tempPath);
    
    System.Drawing.Image image = System.Drawing.Image.FromFile(tempPath);