【问题标题】:Creating Image object using System.Drawing.Image.FromFile使用 System.Drawing.Image.FromFile 创建图像对象
【发布时间】:2013-03-31 14:15:32
【问题描述】:

我正在尝试获取用户从列表框中选择的图像的图像尺寸。图像文件在 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;
}

不知道出了什么问题。有什么想法吗?

【问题讨论】:

  • 那么,您需要什么?您是否收到任何异常、错误的值或您不知道如何获取这些值?
  • 我没有进入 asp.net,以 ~ 开头的东西是有效路径吗?
  • FromFile 需要filename,所以我给出了一个相对路径(绝对路径会引发另一个错误),但在异常情况下它会引发System.IO.FileNotFoundException 并且ex 的消息属性是@ 987654326@

标签: c# asp.net image


【解决方案1】:

使用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("/"). What is the difference?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 2017-05-05
  • 2021-09-27
  • 2023-03-30
相关资源
最近更新 更多