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();
}
相关推荐
xuhaoyu_cpp_java11 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
小宋加油啊13 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh042313 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊14 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风14 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
sensen_kiss16 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能16 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院
sensen_kiss18 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
wu_ye_m18 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
清辞85318 小时前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型