使用System.Drawing.Image.FromFile创建图像对象

3
我正在尝试获取用户从列表框中选择的图像的图像尺寸。 图像文件可在FTP服务器上获得。 我在列表框中显示文件名供用户选择。 选择后,我想显示图像预览,为此我想获取尺寸,以便在需要时可以调整大小。
我将与当前选定列表项链接的文件名存储在字符串变量中。 我知道服务器上的路径。 我使用以下代码创建Image对象,但没有成功。
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;
}

不确定出了什么问题。有什么想法吗?

那么,您需要什么?您是否收到任何异常、错误的值或者您不知道如何获取这些值? - Andy
我不熟悉asp.net,以~开头的路径是否有效? - nvoigt
"FromFile" 需要提供 "filename" 参数,因此我提供了一个相对路径(绝对路径会抛出另一个错误),但在异常中它抛出了 "System.IO.FileNotFoundException",而 "ex" 的消息属性是 "~/Uploads/anemailtes/flower.png"。 - user1889838
1个回答

10

使用Server.MapPath从服务器获取图像。
如下所示

System.Drawing.Image img = 
      System.Drawing.Image.FromFile(Server.MapPath("Uploads/"+dir+"/"+fName), true);  
您还可以使用以下内容:
  • Server.MapPath(“。”)返回正在执行的文件(例如aspx)的当前物理目录
  • Server.MapPath(“..”)返回父目录
  • Server.MapPath(“~”)返回应用程序根目录的物理路径
  • Server.MapPath(“/”)返回域名根目录的物理路径(不一定与应用程序根目录相同)

参考资料
Server.MapPath("."),Server.MapPath("~"),Server.MapPath(@"\"),Server.MapPath("/")有什么区别?


谢谢,它起作用了。你能解释一下吗?因为我之前使用server.mappath时出现了错误(必须正确使用)。 - user1889838
嗨,शेखर,如何在FromFile方法中获取图像URL。例如:http://www.photos-public-domain.com/wp-content/uploads/2012/08/baby-blue-micro-fiber-cloth-fabric-texture.jpg - Vel
1
@Vel 你需要使用网络请求 - शेखर

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接