0

我在玩 basic4android 并尝试创建一个简单的网络服务器。一切都很好,但不知何故我没有设法将图像作为二进制文件发送。我发现了问题,现在一切正常,但与此同时我很绝望,并认为我可以发送一个二进制文件作为用 base64 编码的文本。我仍然忙于这个想法,但找不到正确的信息,有效的 http 响应如何与 base64 编码的图像看起来像。

我想它应该看起来像这样:

HTTP/1.1 200 OK
Content-Type: image/jpeg
Content-Length: lengthofthefollowingdata

dataofimagecodedinbase64

有人可以发布一个适当的工作示例吗?

标准浏览器是否接受以 base64 编码的图像?

4

2 回答 2

1

HTTP 响应中没有 base64 编码。将其定义为新的传输编码或内容编码是可能的(但没用)。

于 2012-09-20T08:20:51.183 回答
0

让我们以 $base64string 变量为例,通过这种方式加载它和图像文件:

$base64string = base64_encode(file_get_contents("image.jpg"));

首先你要做的是通过这个 php 代码设置内容类型:

header("Content-Type: image/jpeg") //if your data is format jpeg

如果您的数据存储为 base64,那么您必须通过以下代码对其进行解码:

$decoded_data = base64_decode($base64string);

那么您所要做的就是通过回显写入解码数据。

echo $decoded_data;

可选:如果您想在 HTML 或 CSS 中插入图像,您不必解码 base64 字符串...例如:

HTML IMG 标签:

<img src="data:image/jpeg;base64,<?php echo $base64string; ?>" alt="image" />

CSS 内联背景属性:

style="background: url('data:image/jpeg;base64,<?php echo $base64string; ?>';"
于 2013-04-18T11:20:58.250 回答