投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/6/15 13:31:51
>> ・リンクをクリックしてそれがjpg,gif,png画像ファイルだったら別なウィンドウを発生させる
> 参考までに、Content-Type を得る方法を記述しておきます。

今度は、画像のバイナリから判定する場合の実装例です。
先頭の数バイトだけを見て画像判定を行っています。

Public Function IsPicture(ByVal URL As StringAs Boolean
    '画像ヘッダ判定 
    Dim req As MSXML2.IServerXMLHTTPRequest
    Set req = New MSXML2.ServerXMLHTTP
    req.open "GET", URL, False
    req.setRequestHeader "Range""bytes=0-7"   '(可能であれば)先頭8バイトだけをダウンロード 
    req.send

    Dim img() As Byte
    img = req.responseBody  

    IsPicture = False

    If UBound(img) >= 1 Then
        If img(0) = &HFF And img(1) = &HD8 Then
            IsPicture = True        'JPEG 
            Exit Function
        End If
    End If

    If UBound(img) >= 3 Then
        If img(0) = &H89 And StrConv(MidB(img, 2, 3), vbUnicode) = "PNG" Then
            IsPicture = True        'PNG 
            Exit Function
        End If
    End If

    If UBound(img) >= 5 Then
        If StrConv(LeftB(img, 6), vbUnicode) Like "GIF8[79]a" Then
            IsPicture = True        'GIF 
            Exit Function
        End If
    End If
End Function