我正在尝试附加png文件。目前,当我发送电子邮件时,附件比文件应有的大小大2倍,并且是无效的png文件。这是我当前拥有的代码:
import com.sendgrid.*;
Attachments attachments = new Attachments();
String filePath = "/Users/david/Desktop/screenshot5.png";
String data = "";
try {
data = new String(Files.readAllBytes(Paths.get(filePath)));
} catch (IOException e) {
}
byte[] encoded = Base64.encodeBase64(data.getBytes());
String encodedString = new String(encoded);
attachments.setContent(encodedString);
也许我对数据编码不正确? “获取”数据进行附加的正确方法是什么?
答案 0 :(得分:3)
因此,这就是Python向现代开发人员提出问题的原因。它抽象出了您无法用解释语言完全理解的重要概念。
首先,这是一个相对基本的概念,但是您can't convert arbitrary byte sequences to a string and hope it works out。以下是您的第一个问题:
data = new String(Files.readAllBytes(Paths.get(filePath)));
编辑:看起来您正在使用的库期望是要进行base64编码的文件。我不知道为什么。尝试将代码更改为此:
Attachments attachments = new Attachments();
String filePath = "/Users/david/Desktop/screenshot5.png";
try {
byte[] encoded = Base64.encodeBase64(Files.readAllBytes(Paths.get(filePath)));
String encodedString = new String(encoded);
attachments.setContent(encodedString);
} catch (IOException e) {
}
唯一的问题是您试图将任意字节表示为字符串。
答案 1 :(得分:1)
看看存储库here中的Builder类。示例:
expect(object.constructor.name).toBe('Test');