如何对文件进行base64编码?

innercool 2004-12-27 05:16:46
网上大多是对字符串进行base64编码,但我想对文件编码,怎么搞?
...全文
301 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhgyp 2004-12-27
  • 打赏
  • 举报
回复
'
'文件Base64编码
'
'  参数:原始文件名、编码文件名
'
Public Function CSBase64Encode(ByVal paraInFilename As String, ByVal paraOutFilename As String) As String

If paraInFilename = "" Or paraOutFilename = "" Then
CSBase64Encode = "" '返回空值
Exit Function
End If

Dim objCrypt As New CAPICOM.Utilities '建立对象

Dim intFile As Integer, buffer() As Byte
intFile = FreeFile()
Open paraInFilename For Binary Access Read As intFile '打开输入文件
ReDim Preserve buffer(LOF(intFile)) As Byte '根据文件长度定义缓存大小
Get intFile, , buffer() '读文件至缓存
Close intFile '关闭输入文件

Dim strBase64Data As String
strBase64Data = objCrypt.Base64Encode(buffer()) '编码运算

Set objCrypt = Nothing '释放对象

ReDim Preserve buffer(Len(strBase64Data)) As Byte '根据String长度定义缓存大小
buffer() = StrConv(strBase64Data, vbFromUnicode) '转换格式

intFile = FreeFile()
Open paraOutFilename For Binary Access Write As intFile '打开输出文件
Put intFile, , buffer() '将缓存写文件
Close intFile '关闭输出文件

End Function
'
'文件Base64解码
'
'  参数:编码文件名、原始文件名
'
Public Function CSBase64Decode(ByVal paraInFilename As String, ByVal paraOutFilename As String) As String

If paraInFilename = "" Or paraOutFilename = "" Then
CSBase64Decode = "" '返回空值
Exit Function
End If

Dim objCrypt As New CAPICOM.Utilities '建立对象

Dim intFile As Integer, buffer() As Byte
intFile = FreeFile()
Open paraInFilename For Binary Access Read As intFile '打开输入文件
ReDim Preserve buffer(LOF(intFile)) As Byte '根据文件长度定义缓存大小
Get intFile, , buffer() '读文件至缓存
Close intFile

Dim strBase64Data As String
strBase64Data = StrConv(buffer(), vbUnicode) '转换格式
buffer() = objCrypt.Base64Decode(strBase64Data) '解码运算

Set objCrypt = Nothing '释放对象

intFile = FreeFile()
Open paraOutFilename For Binary Access Write As intFile '打开输出文件
Put intFile, , buffer() '将缓存写文件
Close intFile


End Function
其中objCrypt 是微软的“capicom.dll”的CAPICOM.Utilities 对象

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧