在将文件转换为Base64时获取空值异常

时间:2017-03-11 09:57:37

标签: android base64 android-image

我要将文件转换为base64,所以我发送文件并将其转换为位图,当我想压缩它时,它会给我错误零点异常 这就是我所做的一切。

 public static String getFileToByte(String path){
        Bitmap bm = null;
        ByteArrayOutputStream baos = null;
        byte[] b = null;
        String encodeString = null;
        try{
            bm = BitmapFactory.decodeFile(path);
            baos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            b = baos.toByteArray();
            encodeString = Base64.encodeToString(b, Base64.DEFAULT);
        }catch (Exception e){
            e.printStackTrace();
        }
        return encodeString;
    }

我在这个错误上收到错误:

 bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);

并传递:

getFileToByte(image.getAbsolutePath());

1 个答案:

答案 0 :(得分:0)

请勿先将文件转换为位图。您的位图为空,因为没有足够的内存来为具有高分辨率的图像文件构建位图。

相反,你应该直接base64编码文件的字节。

然后你的代码也适用于所有类型的文件。