我在我的页面上显示图像,然后试图找到图像的当前高度,以便垂直定位它们。我是这样做的,创建一个新的位图,然后得到位图的高度,如下所示:
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"))))
我想知道是否有人可以帮助我找到一个解决方案,或者是否有不同的方法来实现相同的目的?
非常感谢所有的帮助。谢谢。这可能是文件权限问题,您需要确保您站点的IUSR帐户具有对图像文件的读访问权限。-
右键单击文件,选择"属性",选择"安全"选项卡-您将看到有权访问该文件的用户列表。快速检查的方法是添加具有读权限的"Everyone"。把它锁定在ASP上。你应该启动IIS管理器,r-click你的应用程序池,身份是你的应用程序运行的用户。
如果您正在使用IIS,则可能是文件类型没有在站点可用的MIME类型中设置。
http://technet.microsoft.com/en-us/library/bb742440.aspx 在IIS7中,每个站点都有一个名为"MIME Types"的模块。检查文件扩展名是否在列表中,如果没有,将其添加到适当的MIME类型(上面链接中的MIME类型列表)我认为你必须使用~
根操作符来解决路径问题。
Dim sampleImg As System.Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath(
String.Format("~/Uploads/Products/Images/w100h100/{0}",
e.Item.DataItem("Filename"))))