2012-01-26 4 views

답변

0

Uri.TryCreate method을 사용하여 URI가 유효한지 유효한지 확인할 수 있습니다.

ASP.Net 응용 프로그램에 이미지가 있는지 여부를 확인하지 않아야합니다. 이미지를 다운로드하는 것은 브라우저의 임무입니다. this question에서 설명한대로 브라우저가 누락 된 이미지를 기본 이미지로 바꿀 수 있도록 자바 스크립트를 추가 할 수 있습니다.

0

asp : Image 컨트롤 만 사용하면이 작업을 수행 할 수 없습니다. 그러나 약간의 추가 작업으로 ASHX 핸들러를 사용하여 이미지를 프로그래밍 방식으로 만들 수 있습니다 (예 : 쿼리 문자열의 이미지 사용). HttpRequest이 성공하면 이미지를 응답으로 스트리밍 할 수 있습니다.

HttpRequest이 404 상태를 반환하면 다른 미리 정의 된 이미지를 대신 제공 할 수 있습니다.

그러나 너트를 깨기 위해 슬레지 해머를 사용하는 것과 같으므로 잠재적으로 상당한로드가 발생할 수 있으므로 사이트 전체에서 광범위하게 사용하면 안됩니다. 기본적으로 사용자 브라우저가 아닌 서버에 다운로드하도록 요청하고 있습니다. 영상. 또한 조심스럽게 구현하지 않으면 잠재적 인 XSS 보안 위험이 될 수 있습니다.

요청한 이미지를 로컬에 실제로 보관해야하는 경우 개별적인 경우에 문제가 없습니다. 요청 된 이미지는 향후 요청이 이전에 보존 된 이미지를 제공 할 수 있도록 디스크에 기록되어야합니다.

분명히 Javascript도 해결책이지만 요구 사항에 따라 위의 가능성을 언급합니다.

0
class MyClient : WebClient 
{ 
    public bool HeadOnly { get; set; } 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest req = base.GetWebRequest(address); 
     if (HeadOnly && req.Method == "GET") 
     { 
      req.Method = "HEAD"; 
     } 
     return req; 
    } 
} 


private bool headOnly; 
public bool HeadOnly { 
    get {return headOnly;} 
    set {headOnly = value;} 
} 


using(var client = new MyClient()) { 
    client.HeadOnly = true; 
    // fine, no content downloaded 
    string s1 = client.DownloadString("http://google.com"); 
    // throws 404 
    string s2 = client.DownloadString("http://google.com/silly"); 
}