2014-09-08 5 views
0

저는 C# 의 새내기이며 프로그래밍에서 일반적으로입니다. 나는 테이블 aspx 웹 양식 페이지와 Ι 일부 이미지를 표시하고 싶습니다. 특정 폴더에 파일을 업로드하여 이미지 URL을 얻은 다음 데이터베이스에 전체 경로를 저장하고 페이지로드시 wcf 서비스를 호출하여 데이터베이스에 이미지 URL 양식을 가져옵니다. 데이터베이스에서 경로가 성공적으로 업데이트되었지만 내 페이지에 이미지가 나타나지 않습니다. 또한 경로를 직접 복사하여 붙여 넣으려고 했는데도 이미지가 나타나지 않습니다. 나는 이것을 찾고 있었지만 여전히 왜 실패했는지는 모른다. jpg 및 gif 이미지로 시도했습니다. 여기 내 코드입니다 :이미지가 변경 될 때 이미지가 표시되지 않습니다.

account.aspx

<asp:Table ID="Table1" runat="server" BorderStyle="dotted" BorderWidth="5" GridLines="vertical" HorizontalAlign="Center" Width="572px" style="margin-left: 0px"> 
        <asp:TableRow > 
         <asp:TableCell Width="192"> 
          <asp:Label ID="Label11" runat="server" Text="Στιγμιότυπο παραγγελίας:"></asp:Label> 
         </asp:TableCell> 
         <asp:TableCell Width="192"> 
          <asp:Label ID="Label13" runat="server" Text="Χρονοδιάγραμμα:"></asp:Label> 
         </asp:TableCell> 
         <asp:TableCell Width="192"> 
           <asp:Label ID="Label15" runat="server" Text="Τιμολόγιο:"></asp:Label> 
         </asp:TableCell> 
        </asp:TableRow> 
        <asp:TableRow> 
         <asp:TableCell> 
          <asp:Image ID="img_form_instance" ImageUrl="" runat="server" width="50" Height="50"/> 
         </asp:TableCell> 
         <asp:TableCell> 
          <asp:Image ID="img_timeschedule" ImageUrl="" runat="server" width="50"  Height="50"/> 
         </asp:TableCell> 
         <asp:TableCell> 
          <asp:Image ID="img_invoice" ImageUrl="" runat="server" width="50" Height="50"/> 
         </asp:TableCell> 
        </asp:TableRow> 
       </asp:Table> 

account.aspx.cs 희망

protected void Page_Load(object sender, EventArgs e) 
    { 
     int id = (int)Session["UserId"]; 

     try 
     { 


      clientInfo_Ref.IclientInfoClient clInfoClient = new clientInfo_Ref.IclientInfoClient(); 

      List<string> rows = new List<string>(clInfoClient.getClientInfo(id)); 

      string column = rows.FirstOrDefault(); 
      if (String.IsNullOrEmpty(column)) 
      { 
       //Do nothing 
      } 
      string[] columns = column.Split(';'); 


      name_lbl.Text = columns[0]; 
      sname_lbl.Text = columns[1]; 
      address_lbl.Text = columns[2]; 
      pc_lbl.Text = columns[3]; 
      business_lbl.Text = columns[4]; 
      fc_lbl.Text = columns[5]; 
      pfs_lbl.Text = columns[6]; 
      telephone_lbl.Text = columns[7]; 
      fax_lbl.Text = columns[8]; 
      mail_lbl.Text = columns[9]; 

     } 
     catch 
     { 

     } 

     try 
     { 
      accountInfo_Ref.IaccountInfoSrvcClient accInfoClient = new accountInfo_Ref.IaccountInfoSrvcClient(); 

      List<string> rows2 = new List<string>(accInfoClient.getAccountInfo(id)); 

      string column2 = rows2.FirstOrDefault(); 
      if (String.IsNullOrEmpty(column2)) 
      { 
       //Do nothing 
      } 
      string[] columns2 = column2.Split(';'); 

      //No need to display sensitive info in account page-> inclucde only safe column info 
      order_id_lbl.Text = columns2[1]; 
      state_lbl.Text = columns2[2]; 
      cost_lbl.Text = columns2[3]; 
      img_form_instance.ImageUrl = columns2[4]; 
      img_timeschedule.ImageUrl = columns2[5]; 
      img_invoice.ImageUrl = columns2[6]; 
      notificatin_lbl.Text = columns2[7]; 
     } 
     catch (Exception) 
     { 

     } 
    } 
+0

인가 않았다 이미지가 웹 루트 아래에 있습니까? 브라우저가 볼 때 전체 URL의 예를 게시 할 수 있습니까? –

+0

데이터베이스의 경로는 다음과 같습니다. C :/Users/dv/Documents/Visual Studio 2013/Projects/NIS_Assignment/UploadedFiles/56678/65570/Invoices/webstore_invoice_quotes_samples_product_invoice.jpg – D3v

+0

이미지 디렉토리를 웹 루트 , 또는 디스크에서 파일을 읽고 응답에 기록하는 처리기를 작성하십시오. 두 번째 옵션은 특정 사람들 만 볼 수있는 이미지가있는 경우 이동하는 방법입니다. –

답변

0

이 업로드 폴더는

  // Replace absolute paths with relative ones 
      String form_relPath = columns2[4].Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty); 
      String schedule_relPath = columns2[5].Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty); 
      String invoice_relPath = columns2[6].Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty); 

      //No need to display sensitive info in account page-> inclucde only safe column info 
      order_id_lbl.Text = columns2[1]; 
      state_lbl.Text = columns2[2]; 
      cost_lbl.Text = columns2[3]; 
      img_form_instance.ImageUrl = form_relPath; 
      img_timeschedule.ImageUrl = schedule_relPath; 
      img_invoice.ImageUrl = invoice_relPath; 
      notificatin_lbl.Text = columns2[7]; 
관련 문제