我正在我的页面上显示图像,然后尝试找到图像的当前高度,以便垂直放置它们。我这样做是通过创建一个新的位图,然后获得位图的高度,如下所示:
Dim sampleImg As New System.Drawing.Bitmap(Server.MapPath(String.Format("/Uploads/Products/Images/w100h100/{0}", e.Item.DataItem("Filename"))))
Dim imgHeight As Integer = sampleImg.Height
当我在本地机器上运行时,一切正常。但是,我最近将该网站上传到我的开发服务器,当我从那里运行相同的代码时,我收到此错误消息:
参数无效
我一直在寻找论坛试图找到一个解决方案,但我最后有点不确定在哪里看,因为该文件肯定存在于开发服务器上,并且代码在我的本地机器上工作正常。我正在使用的服务器是一个VPS,我是一个初学者,使用服务器,所以我不知道是否有任何我没有设置的东西阻止它工作?
在尝试寻找解决方案时,我也尝试了以下代码,但收到了System.IO.FileNotFoundException
错误消息:
Dim sampleImg As System.Drawing.Image = System.Drawing.Image.FromFile(Server.MapPath(String.Format("/Uploads/Products/Images/w100h100/{0}", e.Item.DataItem("Filename"))))
我想知道是否有人可以帮助我找到解决方案,或者是否有不同的方法来实现同样的目标?
非常感谢所有帮助。感谢。
答案 0 :(得分:2)
这可能是文件权限问题,您需要确保您网站的IUSR帐户具有对图像文件的读取权限。要做到这一点 -
单击文件,属性,选择“安全”选项卡 - 您将拥有一个有权访问该文件的用户列表。快速检查是添加具有读取权限的“Everyone”。要将其锁定到ASP.Net实例,只应启动IIS管理器,然后单击您的应用程序池,并且Identity是您的应用程序运行的用户。
答案 1 :(得分:1)
如果您正在通过IIS运行,则可能是该站点的可用MIME类型中未设置文件类型。
http://technet.microsoft.com/en-us/library/bb742440.aspx
使用IIS7,每个站点都有一个名为“MIME类型”的模块。检查文件扩展名是否在列表中,如果没有,请添加相应的MIME类型(上面链接中的mime类型列表)
答案 2 :(得分:0)
我认为您必须使用~
root运算符来解决路径问题。
Dim sampleImg As System.Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(
String.Format("~/Uploads/Products/Images/w100h100/{0}",
e.Item.DataItem("Filename"))))
或指定的文件不是有效的图像文件。