首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >万维网上的Vala图像Base64

万维网上的Vala图像Base64
EN

Stack Overflow用户
提问于 2020-05-05 22:23:00
回答 1查看 69关注 0票数 0

我想知道在Vala (Soup.Server)中,我是否可以以base64格式将图像可视化为字符串?

私有静态void default_handler (Soup.Server服务器,Soup.Message msg,字符串路径,GLib.HashTable?查询,Soup.ClientContext客户端){

变量imgStr = (string) Base64.decode (“iVBORw0.”);msg.set_response("image/jpeg",Soup.MemoryUse.COPY,"%s".printf(imgStr).data);

}1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 15:19:06

解决方案

代码语言:javascript
复制
void handle_static_file(Soup.Server server, Soup.Message message,
            string path, HashTable? query, Soup.ClientContext context) {
        server.pause_message(message);
        handle_static_file_async.begin(server, message, path, query, context);
    }

    async void handle_static_file_async(Soup.Server server,
            Soup.Message message, string path, HashTable? query,
            Soup.ClientContext context) {
        if (path == "/" || path == "") {
            path = "index.html";
        }
        var file = File.new_for_path("static/" + path);
        try {
            var info = yield file.query_info_async("*", FileQueryInfoFlags.NONE);
            var io = yield file.read_async();
            Bytes data;
            while ((data = yield io.read_bytes_async((size_t)info.get_size())).length > 0) {
                message.response_body.append(Soup.MemoryUse.COPY,
                    data.get_data());
            }
            string content_type = info.get_content_type();
            message.set_status(Soup.Status.OK);
            message.response_headers.set_content_type(content_type, null);
        } catch (IOError.NOT_FOUND e) {
            message.set_status(404);
            message.set_response("text/plain", Soup.MemoryUse.COPY,
                ("File " + file.get_path() + " does not exist.").data);
        } catch (Error e) {
            if (debug) {
                stderr.printf("Failed to read file %s: %s\n", file.get_path(),
                    e.message);
            }
            message.set_status(500);
            message.set_response("text/plain", Soup.MemoryUse.COPY,
                e.message.data);
        } finally {
            server.unpause_message(message);
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61624075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档