在面板内显示图像

时间:2014-04-28 11:04:51

标签: asp.net

在下面的代码中,我有一个图像,我想将图像放在面板中但图像需要整页显示但我想在面板中显示请帮我这样做。

if (fileExt == ".jpeg" || fileExt == ".jpg")
                {
                    Response.ContentType = "image/jpeg"; 
                    docimg.ImageUrl = "C:\\Search\\" + strName + "\\" + strDocumentFolder + "\\" + Imgdocname;

                    docimg.Visible = true;
                    Response.WriteFile(docimg.ImageUrl);
}


<div ID="imgContainer" runat="server" style="width: 700px; height: 300px;  overflow:auto; border: solid 1px black;
                    padding: 10px; margin-bottom: 5px;" >
                    <asp:Panel ID="imgPnl" runat="server">
        <asp:Image ID="docimg" runat="server" Width="100px" Height="100px"/></asp:Panel>

1 个答案:

答案 0 :(得分:0)

在您的代码中,您正在从服务器中的C Drive物理路径读取图像,并在整个响应中加载图像。

我建议你做以下

  1. 将图像复制到您的网络应用目录
  2. 只需指定新的相对网址
  3. 即可

    以下是p-sedo代码

    if (fileExt == ".jpeg" || fileExt == ".jpg")
    {
         string imagePath= "C:\\Search\\" + strName + "\\" + strDocumentFolder + "\\" + Imgdocname;
         //Read image from location and save it in the web application
         string savedTempPath="/temp/Imgdocname.jpeg";
    
         docimg.ImageUrl=Server.MapPath("~/temp/Imgdocname.jpeg");
    
    }
    

    更好的方法

    更好的方法是使用处理程序/单独页面为您处理

    <强> ImageProcess.aspx

    protected void Page_Load(object sender, EventArgs e)
    {
    
     string imageName=Request.QueryString["fName"];
     // then more logic on file extn etc
    
     if (fileExt == ".jpeg" || fileExt == ".jpg")
     {
      Response.ContentType = "image/jpeg"; 
      string file = "C:\\Search\\" + strName + "\\" + strDocumentFolder + "\\" + Imgdocname;
      Response.WriteFile(file);
     }
    
    }
    

    在aspx中

    <div ID="imgContainer" runat="server" >
     <asp:Panel ID="imgPnl" runat="server">
    
       <asp:Image ID="docimg" runat="server" 
         ImageUrl="~/ImageProcess.aspx?fName=test.jpeg" 
         Width="100px" Height="100px"/>
      </asp:Panel>
     </div>