2011-02-07 43 views
0

古典的なASPでbase64でエンコードされた画像をどのようにデコードするか教えてください。イメージは、Java org.apache base64クラスによってエンコードされます。 Javaはbase64デコードのためにRFC 2045を使用します。ASP classicのbase64画像デコーダ

答えて

1

Capicom COMオブジェクトを使用できます。私はそれを逆(base64エンコーディング)に使用しています。 これは、(あなたは大きなループを持っている場合は、あなたがより良いのCreateObjectがループ外で行わなければならないと思いますが、簡単な例で、これはそれを行う必要があります)私はどうなるのかです:

Function Base64Decode(encodedString) 
    Dim caputil : Set caputil = CreateObject("CAPICOM.Utilities") 
    If len(encodedString) > 0 Then 
     Base64Decode = caputil.Base64Decode(encodedString) 
    Else 
     Base64Decode = "" 
    End If 
    Set caputil = Nothing 
End Property 

参考:http://msdn.microsoft.com/en-us/library/aa388176(v=vs.85).aspx

ところで、capicom.dllは、MSのサイトからダウンロードできます。http://www.microsoft.com/downloads/en/details.aspx?FamilyID=860ee43a-a843-462f-abb5-ff88ea5896f6

1
<% 
Set objXML = Server.CreateObject("MSXml2.DOMDocument") 
Set objDocElem = objXML.createElement("Base64Data") 
objDocElem.DataType = "bin.base64" 
objDocElem.text = "/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAUD" 'encodedString 

'Save to disk 
Set objStream = Server.CreateObject("ADODB.Stream") 
objStream.Type = 1 
objStream.Open 
objStream.Write objDocElem.NodeTypedValue 
objStream.SaveToFile "abc.jpg", 2 
set objStream = Nothing 


'Or send to browser 
Response.ContentType = "image/jpeg" 
Response.AddHeader "Content-Disposition", "attachment; filename=abc.jpg"; 
Response.BinaryWrite objDocElem.NodeTypedValue 

Set objXML = Nothing 
Set objDocElem = Nothing 
%>