asp讀取一個圖片,並轉為base64編碼的函數。可用於導出帶圖片的html單文件或帶圖片的word文件等用途


這個功能在百度知道問了十幾天,百度知道表示它也不知道。后來網海撈針,竟在博客園找到一段相關代碼。茅塞頓開,如同便秘通了那么順暢舒服,函數化后,就有了這段代碼。

<%
Function ImagesToBase64(FileName)
Dim xml
Dim root
Dim fs
Dim FilePath
Dim objStream
Dim objXMLDoc
Dim Base64
''定義變量完結
'創建對像
FilePath=Server.MapPath(FileName)
getFileExt = Mid(FilePath, InstrRev(FilePath, ".") + 1)

Set objXMLDoc=Server.CreateObject("msxml2.FreeThreadedDOMDocument")
    '設定生成XML文檔的根為 Base64Data
    objXMLDoc.loadXML "<?xml version='1.0'?><Base64Data />"

Set fs = Server.createObject("Scripting.FileSystemObject") ''服務器需要FSO組件
If fs.FileExists(FilePath) Then '判斷File文件是否存在
    '用 stream 來讀取數據
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Type = 1
    objStream.Open
    objStream.LoadFromFile FilePath

    objXMLDoc.documentElement.dataType = "bin.base64"
    objXMLDoc.documentElement.nodeTypedvalue = objStream.Read
    '數據流讀取結束.得到了值 objXMLDoc
    '創建XML文件
          Set xml = Server.CreateObject("msxml2.FreeThreadedDOMDocument")
          xml.load objXMLDoc
          If xml.ReadyState>2 Then
            Set root=xml.getElementsByTagName("Base64Data")
            Base64="<img src=""data:image/"&getFileExt&";base64,"&vbcrlf&root.Item(0).Text&""">"
          else
            Base64=""
          End If
          Set xml=Nothing
    Set objStream=Nothing
else
            Base64=""
End If

Set fs=Nothing
Set objXMLDoc=Nothing

ImagesToBase64=Base64

End Function
%>

<%
'測試時同文件夾應該包含該圖片文件。
response.Write ImagesToBase64("12.jpg")
%>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM