春JSON POST图像

问题描述:

我试图找到我如何从JSON响应到Server后的图像(保存到服务器端)。我如何理解,我可以使用@RequestBody,但我不知道我该如何做到这一点。感谢您的帮助。春JSON POST图像

+0

除非您发布的代码,同时也告诉我们,你已经尝试了什么,我会发布的“如何使鸡肉和蘑菇汤”作为一个答案描述.. – 2013-03-10 22:19:44

+0

我只想要一个简单的例子,我怎么能收到一封来自JSON的图像。 – Maximus 2013-03-10 22:34:18

你是问如何在一个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