我正在使用VS 2010开发Web应用程序。我将上传的图像存储在服务器的物理路径中,并在IIS 7.5中创建虚拟路径(下面的屏幕截图)。在授权中,显示一个警告。为了使用belo代码,我尝试从服务器检索图像但是图像不显示。问题出在虚拟路径中还是在代码中提到的路径中?
private void CallImage()
{
SqlConnection SqlCon = new SqlConnection(GetConnectionString());
SqlCon.Open();
string query = "SELECT Cmp_DocPath FROM Company_Info WHERE
Vendor_ID= '" + ddlVendorID.SelectedValue + "'";
SqlCommand SqlCmd = new SqlCommand(query, SqlCon);
SqlDataAdapter da = new SqlDataAdapter(SqlCmd);
DataTable dt = new DataTable();
da.Fill(dt);
string ImageName = Convert.ToString(dt.Rows[0][0].ToString());
Image1.ImageUrl = this.ResolveUrl("D:/Upload/Commerical Certificates/"+ImageName);
// Image1.ImageUrl = this.ResolveUrl("D:\\Upload\\Commerical Certificates\\"+ImageName);
// Image1.ImageUrl = this.ResolveUrl("~\\Upload\\Commerical Certificates\\"+ImageName);
SqlCon.Close();
}
答案 0 :(得分:0)
您使用的用户名可能没有服务器的读/写权限。转到相应用户的用户设置并启用读写权限。同时检查您是否提供了正确的图像路径。希望它有所帮助。
答案 1 :(得分:0)
您无法在图像中引用物理位置,并希望它可以在网站上运行。将路径存储为映像,将其作为来自站点根目录的虚拟路径。例如:
如果您的网站根位于:
d:\inetpub\mysite\
您的图片位于:
d:\inetpub\mysite\uploads\images\
然后你的数据库中的虚拟路径必须是:
~\uploads\images\image1.jpg
~\uploads\images\image2.jpg
然后你可以将它设置为ImageUrl属性而不是,你不需要解析它(Image控件自动执行此操作)。
我的猜测是你遇到这个问题的原因是因为你试图引用不在网站内的图像,即使你通过访问NETWORK SERVICE,IIS_IUSRS也可以在你的开发环境中工作,第二个将此应用程序移动到生产环境中,您将遇到问题。更不用说在安全性和模块性方面做得很差。