【问题标题】:Image as response and its details with nodejs图像作为响应及其使用 nodejs 的详细信息
【发布时间】:2018-01-27 19:07:05
【问题描述】:

我想发送一个带有我的 json 数据的图像作为从服务器(nodejs)到客户端(angularjs)的响应。我已经看到像将图像作为 json 发送但将数据作为会话 cookie 发送之类的答案,但它们还不够令人满意。 发送图像的最佳方式是什么?作为jpg或png格式的图片还是发送绝对路径,客户端下载?

其次,我想问一下,我是否可以在我的回复中嵌入图片并发送它,假设只有一张图片并且空间不会成为问题,如果可以,我该怎么做?

【问题讨论】:

    标签: angularjs json node.js


    【解决方案1】:

    不幸的是,我没有 nodejs 的语法,但我相信这个概念会保持不变。 这是我的工作:

    定义函数 GET 能够产生“image/*” 例如:

    @GET
    @Produces("image/*")
    public Response getImage() {
       String image = "scroll0015.jpg";
       File f = new File(image);
       if (!f.exists()) {
           throw new WebApplicationException(404);
       }
       String mt = new MimetypesFileTypeMap().getContentType(f);
       return Response.ok(f, mt).build();
    }
    

    然后,当您构建响应时,您会在响应标头中告知您要发送的文件内容。

    1) 如果您的用户/客户端能够访问共享位置,那么最好指向新的 URL。 例如使用亚马逊 S3。

    2) 你的形象经常变化吗?让用户缓存它。

    3) 如果您的服务器可以很好地承担发送图像的负载,否则您使用云服务。

    【讨论】:

    • 您是想说我们可以在响应中发送整个图像以及 json 数据?
    • 是的,我在 Java 中输入的代码 - Jersey REST 就是这样做的
    【解决方案2】:

    在您的 NodeJS 应用程序中将您的图像转换为 base64,然后将 base64 响应发送到客户端(AngularJS)。 有关更多信息,请参阅此链接: https://www.npmjs.com/package/base64-img

    【讨论】:

    • 文档没有说明如何以角度显示它。
    • 将响应放入 img 标签内。
    猜你喜欢
    • 2015-08-13
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    相关资源
    最近更新 更多