0

我有一个具体问题:

我有一个请求,发送到 nodejs express 应用程序,该应用程序将返回多个 PNG。结果直接显示在浏览器中的图像中。

image.src = http://www.....

PNG是在服务器端创建的,但我无法在一个响应中将它们发回并将它们作为图像显示在浏览器的客户端。

我将 PNG 内容通过管道传输到一个流中,然后我将其发回。当所有文件都发回时,我在最后关闭了流。我没有在两者之间调用 res.end() 。

发生的情况是我收到了一个非常大的 PNG 文件(所以我知道它包含我请求的所有图像的数据),但我在浏览器中的图像只显示第一个 PNG - 我不知道如何拆分响应客户端一边查看我的所有图像。

如果我直接在我的电脑上下载它们(通过手动调用请求),我什至无法查看 PNG - 返回的 PNG 非常大,但是当我在 gwenview 中打开它时只显示第一个 PNG。

无法在 zip 文件中发送 png 文件并将其解压缩到客户端,因为并非所有浏览器都支持解压缩。(我很难学会这个)我真的不知道如何解决这个问题。我是否需要设置一个我还不知道的特定标题类型?我需要在 PNG 之间发送一些分隔符吗?如何拆分返回的 PNG 客户端?

一些帮助将不胜感激!

谢谢!

4

2 回答 2

1

多个图像没有 MIME 类型。最好的办法是生成一个 html 页面,然后将图像嵌入其中。如果您不想在服务器上保留任何图像,可以使用数据 URL 嵌入它们:https ://github.com/heldr/datauri

于 2013-10-10T20:27:07.420 回答
0

另一种选择是使用节点画布将多个图像组合成一个大图像。

于 2013-10-11T02:18:29.397 回答