Meine Webanwendung wurde auf Spring MVC erstellt. Ich habe eine Methode, wo der Benutzer PDFs hochladen kann. Die Ich sende die Datei als mutlipart Datei an den Server. Jedes Mal, wenn der Benutzer hochlädt.Zieldatei existiert bereits und konnte beim Hochladen nicht gelöscht werden
Alles, was ich will, ist, die Dateien als Anlagen in dieser E-Mail zu senden. Mein Code
private File prepareAttachment(final MultipartFile mFile) {
File file = new File(System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") + mFile.getOriginalFilename());
try {
if(file.exists()) {
file.delete();
}
mFile.transferTo(file);
} catch (FileNotFoundException fnfE) {
file.delete();
LOG.error(" file was not found.", fnfE);
} catch (IOException ioE) {
file.delete();
LOG.error("file has failed to upload.", ioE);
}
return file;
}
Aufruf der Methode, die Anlage zu bereiten:
MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(final MimeMessage mimeMessage) throws Exception {
File file = prepareAttachment(form.getFile());
File file2 = prepareAttachment(form.getFile2());
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
message.addAttachment(form.getFile().getOriginalFilename(), file);
message.addAttachment(form.getFile2().getOriginalFilename(), file2);
Erste Ausnahme:
2017-08-28 15:10:59,549 ERROR com.menards.requestForms.business.service.EmailService - file has failed to upload.
java.io.IOException: Destination file [C:\opt\tcserver\main\temp] already exists and could not be deleted
at org.springframework.web.multipart.commons.CommonsMultipartFile.transferTo(CommonsMultipartFile.java:160) ~[spring-web-4.3.6.RELEASE.jar:4.3.6.RELEASE]
at com.menards.requestForms.business.service.EmailService.prepareAttachment(EmailService.java:552) ~[classes/:?]
dies perfekt funktionieren, wenn ich die zweite Datei hinzufügen Kommentar aus :(
message.addAttachment(form.getFile2().getOriginalFilename(), file2);
irgendwelche beraten?
Stopp tun 'File.Delete()', wenn es nicht existiert. Hast du das 'file.canRead()' überprüft? Was gibt es aus? – pedromss
Ich habe "file.delete()" hinzugefügt, um das Problem zu beheben. Es wird den gleichen Fehler ohne es werfen. – Samarland
Ich weiß nicht, warum Leute die Abstimmung ablehnen, wenn ich wirklich sehe, dass dies ein Problem ist und nicht einfach! – Samarland