2014-10-22 122 views
1

我正在處理用於在JSP上顯示用戶消息的用例。流動的詳情如下:在JSON響應中返回文件/文件(Java-Jersey-ReST)

  • 所有的消息都將在一個表中顯示帶有圖標的附件
  • 當附件的用戶點擊該文件應該得到下載。
  • 如果有多個附件,用戶可以選擇需要下載的 。
  • 附件將存儲在本地文件系統中,附件的路徑將由系統決定。

我曾嘗試參照這些所謂的問題來實現:

但是,它不解決我的目的。我有以下問題:

  1. 是否可以在一個響應中發送消息數據(如主題,消息,消息ID等)以及附件(InputStream)?
  2. 如果是的話,我的資源方法中需要什麼MediaType@Produces註釋?目前我的資源注有@Produces(MediaType.APPLICATION_JSON)。這會工作嗎?
  3. 如何在響應中發送文件數據?

任何指針讚賞。 TIA。

回答

1
  1. 您可以將自定義數據添加到響應標題,所以是您可以發送此類消息數據。將數據添加到響應標題。

  2. @Produces(MediaType.APPLICATION_JSON)將無法​​正常工作,除非客戶將接受JSON作爲文件,他們應該,也不會做;)

    正確MediaType取決於你要提交什麼樣的文件。

    你可以使用默認的MediaType/MIME類型MediaType.APPLICATION_OCTET_STREAM/application/octet-streamIs there a 「default」 MIME type?),但我認爲這是更好地使用正確的和詳細的MIME類型爲您的文件。

  3. 你會找到工作的例子在Input and Output binary streams using JERSEY?與球衣的文件數據傳送 - 因此沒有必要再回答這個:)

希望這在某種程度上有幫助的,有一個愉快的一天。