将文件转换为base64字符串,以通过Android应用程序作为附件发送

时间:2016-02-27 09:33:27

标签: android base64 email-attachments

我创建了一个应用程序,我在其中使用mandrill app API发送电子邮件。没有附件的电子邮件正在传送,但是当我将图像附加到它时,它在接收器侧被接收为损坏的图像。这里需要将文件转换为base64字符串以传入json数组。我用了这段代码:

public static String encodeImagetoBase64(Bitmap img) {
    Bitmap image = img;
    ByteArrayOutputStream byteOStream = new ByteArrayOutputStream();
    image.compress(Bitmap.CompressFormat.JPEG, 100, byteOStream);
    byte[] b = byteOStream.toByteArray();
    String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
    Log.e("Look", imageEncoded);
    return imageEncoded;

}

所以有人能告诉我解决方案,为什么图像会受损。 同样,我也希望将扩展名为“.txt,.doc,.docx,.pptx,.pdf,.xls”等文件转换为附件,所以请为我推荐任何来源。感谢名单

1 个答案:

答案 0 :(得分:0)

我正在使用这种方法,它正在运作:

 public static String getFileBinary(String uploadFilePath) {
        String encodedString = "0";
        if (uploadFilePath.length() < 2)
            return encodedString;
        try {
            InputStream inputStream = new FileInputStream(uploadFilePath);//You can get an inputStream using any IO API
            byte[] bytes;
            byte[] buffer = new byte[8192];
            int bytesRead;
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            try {
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    output.write(buffer, 0, bytesRead);

                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            bytes = output.toByteArray();
            encodedString = Base64.encodeToString(bytes, Base64.DEFAULT);

        } catch (IOException es) {

        }
        return encodedString;
    }