2013-03-10 32 views
1

我試圖找到我如何從JSON響應到Server後的圖像(保存到服務器端)。我如何理解,我可以使用@RequestBody,但我不知道我該如何做到這一點。感謝您的幫助。春JSON POST圖像

+0

除非您發佈的代碼,同時也告訴我們,你已經嘗試了什麼,我會發布的「如何使雞肉和蘑菇湯」作爲一個答案描述.. – 2013-03-10 22:19:44

+0

我只想要一個簡單的例子,我怎麼能收到一封來自JSON的圖像。 – Maximus 2013-03-10 22:34:18

回答

3

你是問如何在一個JSON請求主體張貼圖片到服務器?我最近這樣做了,詳情請看here。我在a similar question中提供了這個答案,但會在這裏複製答案。

在我們可以利用文件API的加載一個文件,然後使用Base64編碼編碼的內容,並最終發佈之前分配該編碼的內容爲JavaScript對象瀏覽器。

在服務器上,我們有一個春天控制器將處理請求。作爲將請求體轉換爲java對象的json解組的一部分,圖像字節的base64編碼值將被轉換爲標準Java字節[],並作爲LOB存儲在數據庫中或作爲字節流式傳輸陣列直接到磁盤(取決於您希望如何在服務器上保存的文件)

爲了獲取圖像,又一個春天控制器方法可以通過直接返回流中的字節提供圖像。

的博客文章中,我掛上面假設你要使用的圖像作爲另一個對象的一部分,但原則應該是相同的,如果你想只圖像直接合作。既然你希望圖像成爲JSON請求體的一部分,這聽起來像這種技術是你想要的,但是。讓我知道是否需要澄清。

+0

Thanx Jay。我剛剛閱讀了Base64。但是,如果它將成爲Base64字符串,它將如何在URL中顯示:)在數據庫中,圖像將保存爲URL。並且我將要做圖像作爲@RequestBody的一部分。 – Maximus 2013-03-11 00:03:49

+0

基本64字符串是請求正文的一部分,不是URL的一部分,因此您不會看到它。另外,當您嘗試保存實際圖像時,將URL保存在數據庫中並沒有多大意義。您應該清除您想要存儲這些圖像的模式。 – Jay 2013-03-11 00:28:13

+0

我要將這些圖像直接存儲到磁盤。我不知道,這是正確的,該請求的身體看起來像 '{ 「形象」: 「數據:圖像/ JPEG; BASE64,/ 9J/4QITRXhpZgAATU0AKgAAAAgACgEDAAMAAAABAAYAAAEPAAIAAAAIAAAAhgEQAAIAAAAJAAAAjgESAAMAAAABAAEAAAEaAAUAAAABAAAAlwEbAAUAAAABAAAAnwEoAAMAAAABAAIAAAEyAAIAAAAUAAAApwITAAMAAAABAAEAAIdpAAQAAAABAAAAuwAAAABTQU1TVU5H/hJ8SBaiabTruG3J56r4b09nZxGzAFUCDkdOoauXuNH8H + MtR8rVrVJpYsqjsgYgc5xlWx09a55YtbnqwpNn/2Q ==」}',它甚至沒有放置這裏 .... ? – Maximus 2013-03-11 00:43:28