首页 > 解决方案 > 如何使用经典的 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"))

标签: vbscriptasp-classic

解决方案


在对文件进行编码之前,您需要将文件读入变量。

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)

推荐阅读