Java Android-将位图转换为包含在多部分请求中的字符串
我试图将位图转换为可以包含在我的多部分HTTP请求中的字符串,我必须手动构造请求体,我的问题是,当我将位图转换为字节数组,然后从字节数组转换为字符串时,我似乎失去了文件结构的完整性。如何将位图转换为字符串而不损坏文件结构Java Android-将位图转换为包含在多部分请求中的字符串,java,android,http,bitmap,multipart,Java,Android,Http,Bitmap,Multipart,我试图将位图转换为可以包含在我的多部分HTTP请求中的字符串,我必须手动构造请求体,我的问题是,当我将位图转换为字节数组,然后从字节数组转换为字符串时,我似乎失去了文件结构的完整性。如何将位图转换为字符串而不损坏文件结构 Bitmap imageBitmap = BitmapFactory.decodeFile(data.getData()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); imageBitmap.compre
Bitmap imageBitmap = BitmapFactory.decodeFile(data.getData());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
String s = new String(baos.toByteArray());
可以使用Base64将位图转换为字符串 试试这个
public String convertBitmapToString(final Bitmap pBitmap){
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
pBitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
final byte [] bytes = byteArrayOutputStream.toByteArray();
final String string = Base64.encodeToString(bytes, Base64.DEFAULT);
return string;
}
或者,如果无法使用base64,请尝试以下方法
try {
String s = new String(baos.toByteArray(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
问题是web服务希望输入为字节结构,我尝试了base64,但服务没有对其进行解码。我无法控制服务,因此我必须自己解决这个问题。
我似乎失去了文件结构的完整性。
?档案?你说的是位图。特别是当您使用多部分上传时,请不要使用base64编码。只需按原样发送文件。在我的例子中,它是一个位图,但我假设上载的文件或位图应该是相同的。有关于如何按原样发送文件的示例吗?data.getData()
。那是什么?文件名?它是资源的URI,文件的路径。因此,您需要上载文件。你为什么说你想上传位图呢?