2013-03-22 70 views
1

我有一个要求,我发送一个json文件到服务器和解析发生在服务器端。我创建了json文件的条目,现在我想将存储在imageview中的图像存储为json文件的条目。搜索了几个以前的帖子,但找不到要做什么。任何指针都会对以json格式存储图像以通过服务器发送有很大的帮助。发送图像作为json条目android

+0

您可以添加OLY对象JSON不是字节,如图像文件包含 – 2013-03-22 08:38:14

回答

1

好吧,这是一种实验性的,但你可以创建一个字节数组的位图,然后创建一个新的字符串与该字节数组,然后将其发送到服务器。

但是,为什么不直接发送POST请求来直接保存图像,而无需进行任何实验性处理或解析?

1

尝试的base64编码的图像(如下面,这里的URI是你的形象 - 但请注意:ImageView的没有消气的ImageUri,所以你必须自己将它存储):

Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM); 

ContentResolver cr = getContentResolver(); 
InputStream is = cr.openInputStream(uri); 

byte[] data = getBytesFromFile(is); 

byte[] encoded_data = Base64.encodeBase64(data); 
data_string = new String(encoded_data); 

现在你有一个base64编码的字符串data_string,你可以用你的JSON请求发送。在服务器端,你只需要解码字符串并保存图片。

8

如果您想要将图像包含在将要发送请求的JSON对象中,请将转换成Base64字符串并将此字符串放入JSON对象中。

例如:

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT); 

检查:

+0

感谢答复。将测试相同的我的需求! – bharath 2013-03-22 09:06:10

+1

我这样做,但得到错误400,错误的要求。它似乎不喜欢创建的字符串。 – Doomsknight 2013-08-14 10:39:55

+0

@Doomsknight你有没有解决这个问题我也面临同样的400坏请求 – Naveed 2016-01-05 19:01:18