【问题标题】:What's the proper way to return a file as the response?返回文件作为响应的正确方法是什么?
【发布时间】:2012-06-28 20:30:11
【问题描述】:

基本上我需要提供 REST 服务来接收字符串参数,使用该参数从另一个系统获取文件,然后将获取的文件作为响应返回。

效果应该与用户单击 pdf 或任何其他二进制文件链接并且浏览器提示他保存/下载该文件时的效果相同。

几点:

  • 是否可以流式传输文件(在我从源系统接收字节时发送字节)。换句话说,如何处理非常大的文件?
  • 也和流有关,当使用常规的HttpServletResponse时,是否必须等到一个大文件被完全读取到return response.build()

如何使用 Apache Wink 来做这件事?

PS 抱歉,这对 Wink 大师来说可能是微不足道的,但我才刚刚开始思考 developer guide

【问题讨论】:

    标签: java jax-rs apache-wink


    【解决方案1】:

    您可以从您的方法中返回java.io.File。如果你愿意,你可以用Response 包装它。 Wink 将处理流媒体。当您调用 response.build() 时不会开始流式传输,而是在您的方法完成时开始。

    如果您想要一个正确的下载对话框,您应该返回正确的Content-Disposition 标头。见How to set response header in JAX-RS so that user sees download popup for Excel?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-28
      • 2016-09-12
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      相关资源
      最近更新 更多