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 分钟前
C++ 继承进阶:默认成员函数、多继承、虚继承与组合设计
开发语言·c++·笔记·学习
电子云与长程纠缠17 分钟前
UE中使用TGuardValue与TInlineComponentArray数据结构
开发语言·数据结构·学习·ue5·游戏引擎
caimouse1 小时前
MM 学习笔记 10:页面文件与系统加载器
笔记·学习·reactos
一只小菜鸡..1 小时前
南京大学 操作系统 (JYY) 学习笔记:Hello, OS World! (程序的机器视角)
java·笔记·学习
lazy H2 小时前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
a11177613 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao14 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
你想知道什么?15 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御15 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
AOwhisky17 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发