0

谁能告诉我如何在经典 ASP 中解码 base64 编码图像?图像由 Java org.apache base64 类编码。Java 使用 RFC 2045 进行 base64 解码。

4

2 回答 2

2
<%
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
%>
于 2014-08-05T03:03:02.660 回答
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

于 2011-02-14T13:31:04.937 回答