【发布时间】:2013-10-11 10:18:29
【问题描述】:
我有一个具体问题:
我有一个请求,发送到 nodejs express 应用程序,该应用程序将返回多个 PNG。结果直接显示在浏览器中的图像中。
image.src = http://www.....
PNG 是在服务器端创建的,但我无法在一个响应中将它们发回并在浏览器中以图像的形式在客户端显示。
我将 PNG 内容通过管道传输到一个流中,然后将其发回。当所有文件都发回时,我在最后关闭了流。我没有在两者之间调用 res.end()。
我收到一个 PNG 文件,非常大(所以我知道它包含我请求的所有图像的数据),但我在浏览器中的图像只显示第一个 PNG - 我不知道如何拆分响应客户端查看我的所有图像。
如果我直接将它们下载到我的电脑上(通过手动调用请求),我什至无法查看它们 - 返回的 PNG 非常大,但仅在我打开它时才显示第一个 PNG,例如在 gwenview 中。
无法在 zip 文件中发送 png 文件并在客户端解压,因为并非所有浏览器都支持解压缩。 (我很难学会这个)我真的不知道如何解决这个问题。我是否需要设置一个我还不知道的特定标题类型?我需要在 PNG 之间发送一些分隔符吗?如何拆分返回的 PNG 客户端?
非常感谢您的帮助!
谢谢!
【问题讨论】:
-
您正在尝试将许多较小的图像组合成一张巨大的图像,并希望浏览器自动显示较小的图像?如果是这样,那就行不通了。您可以查看 CSS sprite 技术来显示较大图像的区域。但是,它不会将多个文件的内容流式传输到一起。它正在构建一个大图像。
-
还有什么软件不能改?
-
为什么必须在一个请求中完成?多个请求可以轻松解决问题。
-
它必须是一个请求,这就是我无法在软件中进行大量更改的意思——抱歉,我措辞不准确。我真的不希望浏览器自动检测较小的图像,我只是不知道如何检测它们。如何再次将客户端的图像拆分为较小的图像?我的意思是必须有解决方案?这就是为什么我要问定界符......我不知何故觉得“大图像”是通过一个接一个地流式传输图像而错误地创建的 - 即使通过手动下载大图像(而不是使用 js)只有第一个图像是显示
标签: node.js http express request png