2012-02-09 28 views
1

我有下面的代碼將圖像發送到客戶端:JAX-RS:當我們發回的圖像,其格式是由客戶端收到?

@GET 
@Path("/images/{image}") @Produces("image/*") 
public Response getImage(@PathParam("image") String image) { 
File f = new File(image); 

    if (!f.exists()) { 
     throw new WebApplicationException(404); 
    } 

    String mt = new MimetypesFileTypeMap().getContentType(f); 
    return Response.ok(f, mt).build(); 
} 

現在,客戶端將收到其格式的圖像?它將被包裝成XML還是作爲原始二進制文件? 如果我只是把圖像標籤的src的響應,將圖像呈現?

如果沒有,我怎麼能作出這樣的返回,爲可以放置在IMG標籤

回答

2

廣告1)文件將被序列化爲原始二進制(開流圖像的原始二進制流將直接返回)

廣告2)你的意思是這是返回圖像文件資源的位置,對不對?如果是的話,那麼答案是肯定的(你不能只是把原始二進制數據轉換成HTML頁面,如「< IMG SRC =」 <binary_data>「/ >)

+0

感謝。但是如果我正在爲資源Ajax請求,和我找回一個原始的流,我怎樣才能讓圖像標籤顯示這個形象e? – Daud 2012-02-09 12:50:23

+2

@Daud:這聽起來像一個單獨的問題。 (這是客戶端問題,而不是服務器端問題。) – 2012-02-09 13:13:20

0

您還可以添加內容類型到您的響應頭如圖像/ JPEG,圖像/ PNG或圖像/ GIF,以便客戶端可以自己決定是通過讀取響應頭是什麼形象的類型。 還有一件事,如果你正在發佈到網址傳回圖像流有不需要一個Ajax請求。如果你能僅僅指剛一個servlet servlet的URL添加到圖片src,它會工作。

相關問題