linux - Web 中的 Vala Image Base64
问题描述
我想知道在 Vala (Soup.Server) 中是否可以将我拥有的图像可视化为 base64 格式的字符串?
private static void default_handler (Soup.Server server,Soup.Message msg,string path,GLib.HashTable?query,Soup.ClientContext client) {
var imgStr = (string) Base64.decode ("iVBORw0...."); msg.set_response("image/jpeg",Soup.MemoryUse.COPY,"%s".printf(imgStr).data);
} 1
解决方案
解决方案
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);
}
}
推荐阅读
- python - 如何使用python中的for循环从数据框中返回每列的最大值
- javascript - 使用 npm config 在 NodeJS 中配置文件
- hive - 在 Hive 中,有没有办法在 Y 列之前添加 X 列
- android - 为什么我录制的视频在使用改造上传到服务器后变成 0 字节?
- react-native - react-native 中的 ckeditor 实现
- java - 如何在数组列表中显示符号之前将数据存储到字符串?
- python - 在 Windows 上的 PyCharm 中安装 PyAudio
- sql - 带有年份条件的 SQL 语句
- php - Paypal-PHP-SDK V2 是否支持 Webhooks?
- amazon-web-services - AWS Cloudformation 的版本控制和管道