Base64学习

为什么会有base64呢?

为了把二进制内容安全转成文本字符串。

比如:

1、邮件的附件,附件是base64编码嵌入在邮件中((小的附件)

2、后端把图片信息base64数据嵌入到API响应中,前端负责显示

cpp 复制代码
bool MyFileUtil::ReadFileAsBase64(const std::wstring& filePath, std::string& base64FileData)
{
    base64FileData.clear();
    HANDLE hFile = ::CreateFileW(filePath.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile == INVALID_HANDLE_VALUE)
    {
        return false;
    }

    std::unique_ptr<std::remove_pointer<HANDLE>::type, decltype(&::CloseHandle)> uh(hFile, ::CloseHandle);
    DWORD fileSize = ::GetFileSize(hFile, NULL);
    if (fileSize == 0)
    {
        return false;
    }

    DWORD readSize = 0;
    std::unique_ptr<char[]> up(new char[fileSize]);
    if (!::ReadFile(hFile, up.get(), fileSize, &readSize, nullptr) || readSize == 0)
    {
        return false;
    }

    MyUtil::Base64Encode(std::string(up.get(), readSize), base64FileData);
    return !base64FileData.empty();
}
相关推荐
知识分享小能手6 小时前
MongoDB入门学习教程,从入门到精通,MongoDB创建副本集知识点梳理(10)
数据库·学习·mongodb
星幻元宇VR6 小时前
VR动感科普单车:让交通安全教育更真实、更有效
科技·学习·安全·生活·vr
初生牛犊不怕苦8 小时前
与AI一起学习《C专家编程》:数组与指针
c语言·学习·算法
elseif1238 小时前
浅谈 C++ 学习
开发语言·c++·学习
沛沛rh458 小时前
深入并发编程:从 C++ 到 Rust 的学习笔记
c++·笔记·学习·算法·rust
WYT王玉桐8 小时前
软件测试(黑马)
学习
2201_754864788 小时前
学习日记 – 2026年4月2日
学习
952369 小时前
计算机组成原理 - 主存储器
单片机·嵌入式硬件·学习·fpga开发
CheerWWW9 小时前
C++学习笔记——初始化列表、创建和实例化对象、new 关键字、隐式构造与 explicit 关键字、运算符与运算符重载
c++·笔记·学习