下载后显示损坏的Java mail附加文件

下载后显示损坏的Java mail附加文件,java,spring,spring-mvc,inputstream,email-attachments,Java,Spring,Spring Mvc,Inputstream,Email Attachments,我正在发送带有附件的邮件,但当我尝试打开该文件时,该文件未打开,并出现以下错误: 我试着这样做: JavaMailSenderImpl mailSender = getMailSender(); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper; URLDataSource url; try { helper = new MimeMessageHelper(message

我正在发送带有附件的邮件,但当我尝试打开该文件时,该文件未打开,并出现以下错误:

我试着这样做:

JavaMailSenderImpl mailSender = getMailSender();
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper;
URLDataSource url;
try {
        helper = new MimeMessageHelper(message, true);
        url = new URLDataSource(new URL("localhost:8080/test/attachment/simpldoc.docx"));
        helper.setFrom(mailFrom);
        helper.setSubject(subject);
        helper.setTo(mailTo);
        helper.setText(text, true);
        helper.addAttachment(attachmentName, url);
        mailSender.send(message);
    } 
    catch (MessagingException e) {
        e.printStackTrace();
    }

您正试图将url对象作为附件传递

可以使用url.getOutputStream()打开流,然后在附加文件之前写入文件对象

所有这些都很糟糕

您应该使用File来获取相关文件

因此,替换

URLDataSource url;
//Code
url = new URLDataSource(new URL("localhost:8080/test/attachment/simpldoc.docx"));

它将返回实际文件并将其存储在url对象中


试一试。

你能打开“详细信息”吗?URL
localhost:8080/test/attachment/simpldoc.docx
如何提供该文件?你能把这部分也贴出来吗?因为我有一个非常类似的错误(请参阅):添加响应的
ContentLength
解决了这个问题@rpax在详细信息中,它说文件已损坏,无法打开。您应该使用文件而不是URL来获取附件。
File url;
//Code
url = new File("file://localhost:8080/test/attachment/simpldoc.docx")