我创建了一个应用程序,我在其中使用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”等文件转换为附件,所以请为我推荐任何来源。感谢名单
答案 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;
}