[ASP] 원격 웹서버에 파일이 존재하는지 체크하는 함수 HttpFileExists

지정 URL에 해당하는 파일이 존재하는지 체크하는 HttpFileExists 함수를 만들어 봤다. 파일이 존재하는 경우 파일의 내용을 모두 가지고 오는 방법은 파일의 용량이 큰 경우 성능에 문제가 된다. 성능향상을 위해서 If-Modified-Since 헤더를 이용, 존재 여부만 파악하는 방법을 썼다.

<%
Option Explicit

If HttpFileExist("http://www.ecplaza.net/images/1pixel.gif") Then
    Response.Write "File exists"
Else
    Response.Write "File doesn't exist"
End If

Function HttpFileExist(sUrl)
    Dim oHttp

    set oHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    oHttp.Open "GET", sUrl, False

    oHttp.setRequestHeader "If-Modified-Since", DateToHTTPDate(DateAdd("h", -1, Now))
    oHttp.Send ""

    If oHttp.status < 400 Then
        HttpFileExist = True
    Else
        HttpFileExist = False
    End If

    Set oHttp = Nothing
End Function

''
' Converts date (19991022 11:08:38)
' to http form (Fri, 22 Oct 1999 12:08:38 GMT)
Function DateToHTTPDate(ByVal OleDATE)
    Const GMTdiff = #09:00:00#
    OleDATE = OleDATE - GMTdiff
    DateToHTTPDate = engWeekDayName(OleDATE) & _
        ", " & Right("0" & Day(OleDATE),2) & " " & engMonthName(OleDATE) & _
        " " & Year(OleDATE) & " " & Right("0" & Hour(OleDATE),2) & _
        ":" & Right("0" & Minute(OleDATE),2) & ":" & Right("0" & Second(OleDATE),2) & " GMT"
End Function

Function engWeekDayName(dt)
    Dim Out
    Select Case WeekDay(dt,1)
        Case 1:Out="Sun"
        Case 2:Out="Mon"
        Case 3:Out="Tue"
        Case 4:Out="Wed"
        Case 5:Out="Thu"
        Case 6:Out="Fri"
        Case 7:Out="Sat"
    End Select
    engWeekDayName = Out
End Function

Function engMonthName(dt)
    Dim Out
    Select Case Month(dt)
        Case 1:Out="Jan"
        Case 2:Out="Feb"
        Case 3:Out="Mar"
        Case 4:Out="Apr"
        Case 5:Out="May"
        Case 6:Out="Jun"
        Case 7:Out="Jul"
        Case 8:Out="Aug"
        Case 9:Out="Sep"
        Case 10:Out="Oct"
        Case 11:Out="Nov"
        Case 12:Out="Dec"
    End Select
    engMonthName = Out
End Function

%>

관련글 : ASP에서 MSXML2.ServerXMLHTTP 사용하여 원격 웹서버 내용 갖고 오기

띄어쓰기 하지 않은 영어문장 줄바꿈 하는 방법

영문을 띄어쓰기 없이 길게 쓸경우 줄바꿈이 안되는데 모든 부라우져에서 사용가능한 해결방법은 없는 것 같다.

word-break 스타일은 IE에서만 사용할 수 있다.
style=”word-break:break-all”
특수문자를 제외하고 강제 줄바꿈

style=”word-wrap:break-word”
특수문자를 포함하고 강제 줄바꿈

style=”word-break:nowrap”
width를 지정하였지만 개행이 되지 않기를 원할때 사용.

style=”word-break:keep-all”
텍스트가 한글일 경우 띄워쓰기 기준으로 개행된다.

 
* FF3.0 에서는 width 도 넣어줘야 한다.

*텍스트제한(강제 줄바꿈방지; 텍스트 길이제한;)

width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;

원도우 원격 터미널 접속시 프로토콜 오류가 나서 접속이 안되는 경우 해결 방법

‘라이센스 프로토콜 오류 때문에 원격 컴퓨터가 세션을 끊었습니다’ 라는 오류가 발생해서 터미널 접속이 안되는 경우는  접속 클라이언트 PC 레지스트리의 다음 키값을 지우면 된다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLincensing

참고 : 원격 데스크톱 라이센스 오류 메시지 문제 해결