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();
}
相关推荐
人力资源分享库10 分钟前
华恒智信助力国有行业完成重构价值分配体系
学习
eggcode43 分钟前
腾讯云使用Docker模板的学习记录
学习·docker·腾讯云
金色光环1 小时前
【DSP学习】增强型脉宽调制 EPWM 实验-基于普中DSP开发攻略
单片机·学习·dsp开发
笔夏2 小时前
【安卓学习之FloatingActionButton】按钮太小
android·学习
吃好睡好便好2 小时前
汪国真的诗歌《假如你不够快乐》摘录
学习
KKei16382 小时前
Flutter for OpenHarmony学习目标追踪应用技术文章
学习·flutter·华为·harmonyos
hans汉斯3 小时前
力学研究|半主动变刚度吸振器设计及减振机理研究
学习·力学
風清掦4 小时前
【STM32学习笔记-13】PWR电源控制
笔记·stm32·学习
噜噜噜阿鲁~4 小时前
python学习笔记 |10.1、面向对象编程-类和实例
笔记·python·学习
kdxiaojie4 小时前
U-Boot分析【学习笔记】(8)
linux·笔记·学习