使用一个请求/响应 (nodejs) 下载多个 PNG



我有一个特定的问题:

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

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

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

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

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

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

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

一些帮助将不胜感激!

谢谢!

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

另一种选择是使用 node-canvas 将多个图像合并为一个大图像。

最新更新