2013-06-07 2 views
0

어지간히 인터넷 검색을하고 다른 일을 시도한 후에 이것은 아마도 내가 어수선하게 만드는 단순한 무언가 일 것입니다.C#에서 원격 서버 폴더로 동적 경로를 어떻게 지정합니까?

기본적으로 내가하고있는 일은 URL에서 productID를 파싱하고 XL.jpg를 끝에 추가하는 것입니다. 예를 들어 제품 ID가 1234 인 경우 PathToFolder (C : // LiveSite/img/XL /)에 제공된 폴더에서 1234XL.jpg를 검색합니다.

모든 것이 경로 지정 부분까지 계획대로 작동합니다. 이 URL을 분석하여 끝에 XL.jpg를 추가하고 설정 한 경로를 따르지 만 "주소가 이해되지 않았습니다 .Firefox는이 주소를 여는 방법을 모릅니다. 프로토콜 (c) 어떤 프로그램과도 관련이 없습니다. " 다른 브라우저에는 빈 창이 있습니다.

이 브라우저에 표시 것입니다 : c://LiveSite/img/XL/1234XL.jpg

protected void OpenImg_Click(object sender, EventArgs e) 
       { 
        int i = 0; 

        string PathToFolder = "C://LiveSite/img/XL/"; 

        var dirInfo = new DirectoryInfo(PathToFolder); 
        string FileName = Variables.param + "XL.jpg"; 
        var foundFiles = dirInfo.GetFiles(FileName); 

        if (foundFiles.Length == 1) 
        { 
         ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + PathToFolder + foundFiles[i].Name + "');", true); 
        } 
       } 
      } 
     } 

나는 서버에 그 그것을하지 않습니다 길을 엉망으로하고 무엇? C : // 대신에 사용해야하는 것이 있습니까? 나는 다른 방법으로 슬래시를 뒤집어 썼다. C :/아무도 사용하지 않았다.

미리 도움을 주셔서 감사합니다.

편집 :

죄송합니다. 이미지가 내 컴퓨터 또는 프로젝트에 있지 않습니다. 원격 서버, SQL 서버에 있습니다. 서버에 연결하려면 디렉토리를 올바르게 시작하고 있는지 잘 모르겠습니다.

서버에서 C : // LiveSite/img/XL /에있는 폴더의 경로에 연결하고 싶습니다. 이제는 서버에 연결했을 때만 연결된다는 것을 알았습니다. 그렇다면 인터넷 브라우저에서 해당 폴더로 어떻게 링크합니까? 내가 작성한 코드를 사용하거나 전혀 새로운 방식으로 사용해야합니까?

이 제품은 asp.net 웹 응용 프로그램

+0

을 사용할 수 있습니다 귀하의 웹 사이트의 루트 디렉토리입니다. 이 asp.net 웹 응용 프로그램입니까? 이것이 당신의 이미지가있는 웹 앱이라면? 웹 사이트 루트 또는 하위 폴더 안에 있습니까? 또는 다른 가상 디렉터리? – Damith

+0

예, asp.net 웹 응용 프로그램입니다. 내 이미지는 회사 서버에 있습니다. 프로젝트에 이미지가 없습니다. – JavaTheScript

+0

회사 라이브 사이트에서 이미지에 액세스 할 수 없습니까? 'www.yourcompany.com/img/XL/1234XL.jpg'와 같은가요? – Damith

답변

1

는 당신이 당신의 응용 프로그램 유형에 대해 말하지 않은이

protected void OpenImg_Click(object sender, EventArgs e) 
{ 
    int i = 0; 

    string PathToFolder = "C://LiveSite/img/XL/"; 

    string webRootPathToFolder = ResolveUrl("~/img/XL/"); 
    var dirInfo = new DirectoryInfo(PathToFolder); 
    string FileName = Variables.param + "XL.jpg"; 
    var foundFiles = dirInfo.GetFiles(FileName); 

    if (foundFiles.Length == 1) 
    { 
     ClientScript.RegisterStartupScript(this.GetType(), "openFoundImage", "window.open('" + webRootPathToFolder + foundFiles[i].Name + "');", true); 
    } 
} 
0

에게 있습니다 this 같은 것을보십시오 : 당신이 ... 브라우저에서 로컬 파일을 열 경우

file:///c:/path/to/the%20file.txt 

널리 사용되는 기술이 아니다.

그것은 컴퓨터에서만 작동합니다. 브라우저가 웹 사이트와 동일한 컴퓨터에서 실행되고 있지 않으면이 논리가 작동하지 않습니다.

서버가 브라우저의 파일 내용을 byte [] 형식으로 보내는 솔루션을 고려해야합니다. There is an example of that here. C://LiveSite/ 만약

관련 문제