【问题标题】:Returning file/files in JSON response (Java-Jersey-ReST)在 JSON 响应中返回文件/文件 (Java-Jersey-ReST)
【发布时间】:2014-12-17 17:01:15
【问题描述】:

我正在研究一个在 JSP 上显示用户消息的用例。流程详情如下:

  • 所有邮件都将显示在带有附件图标的表格中
  • 当用户点击附件时,文件应该会被下载。
  • 如果有多个附件,用户可以选择需要的 一个下载。
  • 附件将存储在本地文件系统中,附件的路径将由系统确定。

我已尝试通过参考这些 SO 问题来实施:

但是,这并没有解决我的目的。我有以下问题:

  1. 是否可以在一个响应中连同附件 (Inputstream) 一起发送消息数据(如主题、消息、消息 ID 等)?
  2. 如果是,我的资源方法中@Produces 注释的MediaType 需要是什么?目前我的资源用@Produces(MediaType.APPLICATION_JSON) 注释。这行得通吗?
  3. 如何在响应中发送文件数据?

任何指针表示赞赏。 TIA。

【问题讨论】:

    标签: java json rest download jersey-2.0


    【解决方案1】:
    1. 您可以将自定义数据添加到响应标头,所以是的,您可以发送此类消息数据。将数据添加到响应 Header。

    2. @Produces(MediaType.APPLICATION_JSON) 将不起作用,除非客户端接受 JSON 作为文件,他们应该做什么和不应该做什么;)

      正确的MediaType 取决于您要提交的文件类型。

      您可以使用默认的 MediaType / MIME-Type MediaType.APPLICATION_OCTET_STREAM / application/octet-stream (Is there a “default” MIME type?),但我认为最好为您的文件使用正确且准确的 MIME-Type。

    3. 您将在Input and Output binary streams using JERSEY? 中找到使用球衣发送文件数据的工作示例 - 因此无需再次回答这个问题:)

    希望这对您有所帮助,祝您有美好的一天。

    【讨论】:

      猜你喜欢
      • 2011-04-23
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多