首页 > 解决方案 > 如何使用来自 ostringstream 的猫鼬发送 png 数据?

问题描述

我在 ostringstream 变量“out”中有 png 数据,我想将其作为对 http-request 的响应发送。当我首先将它写入示例中的文件,然后再次读取时,它工作得很好(见下面的代码)。但是,当我改为发送“out.str().c_str()”时,它不起作用。pngdata 中的数据与 pngFileData 不同。有人可以解释为什么吗?

        std::ostringstream out;
        exampleQrPng1.writeToPNG(out);

        std::ofstream mystream("out.png", std::ios::binary);
        mystream << out.str();
        mystream.flush();
        mystream.close();

        size_t ll = out.str().length();
                
        //const char* pngdata = out.str().c_str();
        char * pngFileData = mg_file_read("out.png", &ll);

        std::cout << pngFileData << std::endl;

        mg_printf(
            c,
            "HTTP/1.1 200 OK\r\n"
            "Content-Length: %d\r\n"
            "Content-Type: image/png\r\n\r\n",
            ll
        );
        mg_send(c, pngFileData, ll);

标签: c++mongooseostream

解决方案


推荐阅读