0

因此,要将图像发送到 Web 服务器,我需要将其编码为 base64,然后在服务器端解码。

这就是我所关注的。

但是我在这行代码中得到了 OutOfMemoryException:

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

并且图像大小为1mb。那么,有什么替代方法可以做到这一点?

我读到这个:

使用 Http Post 发送图像

建议使用MultipartEntity。但是我到底在哪里可以找到这些库?因为其中 1 个链接已损坏。

代码:

Uri selectedImageUri = data.getData();
String selectedImagePath = getPath(selectedImageUri);

try {
    File imageFile = new File(selectedImagePath);
    Bitmap bitmap = BitmapFactory.decodeFile(imageFile
            .getAbsolutePath());
    setImage.setImageBitmap(bitmap);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] b = baos.toByteArray();
    base64code = Base64.encodeToString(b, Base64.DEFAULT);
    } catch (Exception e) {

    e.printStackTrace();
    }

可能一种方法可能是降低质量。但是如果我将它设置为2030并且图像已经是低质量 1(取自低端设备)。我可能会得到一个质量很差的图像。

做一些检查大小并根据它降低质量的事情。我不认为是个好主意。

谢谢你

4

1 回答 1

1

使用 MultipartEntity 将图像上传到服务器是不错的选择之一。

MultipartEntity 库下载:

apache-mime4j-0.6.jar

httpmime-4.0.1.jar

希望它可以帮助你。

谢谢。

于 2012-12-15T07:21:21.010 回答