如何使用经典的 ASP/VBScript 将图像转换为 Base64 字符串并保存到文本文件?

问题描述

我已经被这个问题困住了几天。 使用经典的 ASP,我需要获取上传的 .JPG/.PNG 文件并对其进行 base64 编码,以便我可以将其发送到 Java Web 服务。 这是我到目前为止所拥有的:

Function convertimageToBase64(filePath)
  'response.write(Server.MapPath("\") & "<br>")
  dim fs,f
  set fs=Server.CreateObject("Scripting.FileSystemObject")
  set f=fs.CreateTextFile(Server.MapPath("\") &"\Upload\5566.txt",true)
  
  Dim inputStream
  Set inputStream = CreateObject("ADODB.Stream")
  inputStream.Open
  inputStream.Type = 1  ' adTypeBinary
  inputStream.LoadFromFile filePath
  Dim bytes: bytes = inputStream.Read
  Dim dom: Set dom = CreateObject("Microsoft.XMLDOM")
  Dim elem: Set elem = dom.createElement("tmp")
  elem.dataType = "bin.base64"
  elem.nodeTypedValue = bytes
  convertimageToBase64 = "data:image/png;base64," & Replace(elem.text,vbLf,"")

  f.write(convertimageToBase64)
  set f=nothing
  set fs=nothing
  f.close
  
  End Function

convertimageToBase64(RootPath&"/upload/"&Rs("FileName"))

解决方法

在编码之前,您需要将文件读入一个变量。

http://eddiejackson.net/wp/?p=8619

Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile(RootPath&"/upload/"&Rs("FileName"),1)
strFileText = objFileToRead.ReadAll()
objFileToRead.Close
Set objFileToRead = Nothing

Base64String = convertImageToBase64(strFileText)