2014-04-19 5 views
0

아래 코드에서 나는 codebehind에서 이미지 URL을 전달했지만 이미지를 표시하지 않습니다.이미지는 asp.net을 사용하여 표시되지 않습니다

public string strName = "SV"; 
     public string strFolder = "Documents"; 

string Imgdocname = SearchDoc.DocumentName; 
       string fileExt = System.IO.Path.GetExtension(Imgdocname); 
       fileExt = fileExt.ToLower(); 
       if (fileExt == ".jpeg" || fileExt == ".jpg") 
       { 

        docimg.ImageUrl = "C:\\Search\\" + strName + "\\" + strFolder + "\\" + Imgdocname; //not working 
        docimg.Visible = true; 
       } else 
       {docimg.ImageUrl = "C:\\Search\\doc\\Documents\\image.jpeg"; //not working 

       } 

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

      </div> 

답변

1

IS 프로젝트 이름을 검색 하시겠습니까?

예 다음 당신은 컴퓨터의 모든 드라이브에서 절대 경로를 지정할 수 없습니다

if (fileExt == ".jpeg" || fileExt == ".jpg") 
{ 

      docimg.ImageUrl= "~/" + strName + "/" + strFolder + "/" + Imgdocname; 
      docimg.Visible = true; 
} 
else 
{ 
      docimg.ImageUrl = "~/doc/Documents/image.jpeg"; 
      docimg.Visible=true; 
} 
0

를 사용하는 경우. ImageUrl은 컴퓨터 경로가 아니라 프로젝트에있는 URL 경로입니다.

는 ~이 프로젝트의 루트 디렉토리를 참조 물결을 프로젝트 루트 디렉토리에 폴더 Images을 확인하고

docimg.ImageUrl = "~/Images/image.jpeg"; 

으로 경로를 지정합니다.

1

클라이언트 응용 프로그램과 달리 웹 응용 프로그램의 이미지는 페이지에 직접 포함되지 않습니다. 대신 페이지에는 페이지의 HTML을 검색 한 후 브라우저가 요청하는 이미지 리소스에 대한 링크가 포함됩니다. 따라서 클라이언트가 검색 할 수있는 URL을 제공해야합니다. 샘플에서는 서버의 파일 경로를 이미지 URL로 설정합니다. 클라이언트가 서버의 파일 경로에 직접 액세스 할 수 없으므로이 기능은 작동하지 않습니다.

대신 클라이언트가 이미지를 검색하는 데 사용할 수있는 /img/picture.jpg과 같은 URL을 설정할 수 있도록 웹 서버 (예 : IIS)를 통해 액세스 할 수있는 폴더에 이미지를 배치해야합니다. 이를 달성하는 가장 쉬운 방법은 이미지를 응용 프로그램의 루트 폴더 아래에있는 폴더에 저장하는 것입니다. 이 경우,이 같은 이미지 URL을 설정할 수 있습니다 (이미지가 img라는 이름에있는 폴더 가정) :

var imgUrl = "~/img/"; 
if (fileExt == ".jpeg" || fileExt == ".jpg") 
    imgUrl += strName + "/" + strFolder + "/" + Imgdocname; 
else 
    imgUrl += "doc/Documents/image.jpeg"; 
docimg.ImageUrl = imgUrl; 
docimg.Visible = true; 

~ 서버에 프로젝트의 루트에 대한 자리 표시 자입니다 그래서 귀하의 응용 프로그램이 웹 사이트의 루트 또는 아래 어딘가에 설치되어있는 경우에도 링크가 작동합니다.

+0

@ user3492682 : 다른 주제가 같은 주제로 나타났습니다. 나를 오해하지 마라. 두 질문은 웹 애플리케이션의 기본 메커니즘과 이미지가 이미지에서 처리되는 방법에 대해 알아야한다는 방향으로 지적합니다. 내 답변에 대한 자세한 내용을 추가하려고했습니다. 질문있으세요? 내 대답을 명확하게 할 수 있습니까? – Markus

관련 문제