gpt4 book ai didi

java - 从字节数组创建文件对象时指定文件名(不创建物理文件)

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:26 24 4
gpt4 key购买 nike

我遇到了与 this 完全相同的问题通过发布的解决方案,我能够解决我的问题。但现在的问题是,当收到附件时,却没有名字。在我的方法中,我要求提供接收者的电子邮件 ID、主题、内容、文件名和文件的字节 []。我传递的文件格式没有问题,但名称有问题。收件人得到“noname”作为文件名。我们如何指定我们选择的文件名。我作为参数传递的文件名不会得到反射(reflect)。请提出建议。

我正在使用的代码是

File file = new File("D:/my docs/Jetty.pdf");
int len1 = (int)(file.length());
FileInputStream fis1 = null;
try {
fis1 = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
byte buf1[] = new byte[len1];
try {
fis1.read(buf1);
EmailServiceClient.sendEmailWithAttachment("xyz@gmail.com", "abc@gmail.com", "Hi", "PFA", "Jetty.pdf", buf1);

System.out.println("SENT");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

此处是我的电子邮件服务实现

public void sendEmailWithAttachment(String emailIdTo, String emailIdFrom, String subject, String content,
final String fileName, byte[] file) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setTo(emailIdTo);
helper.setFrom(emailIdFrom);
helper.setSubject(subject);
helper.setText(content, true);
helper.addInline("attachment", new ByteArrayResource(file) {
@Override
public String getFilename() {
return fileName;
}
});
mailSender.send(message);
} catch (MessagingException e) {
throw new MailParseException(e);
}}

请有人帮忙解决这个问题

最佳答案

从 Spring 文档中我可以说,除了 contentId 之外,内联元素没有特殊的名称。也许您想添加附件而不是使用 addAttachment 方法?然后您就可以为您的文件命名。

http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/mail/javamail/MimeMessageHelper.html

关于java - 从字节数组创建文件对象时指定文件名(不创建物理文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15060448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com