Mon application Web est créée sur Spring MVC. J'ai une méthode où l'utilisateur peut télécharger des fichiers PDF . J'envoie le fichier en tant que fichier mutlipart au serveur. Chaque fois que l'utilisateur télécharge.Le fichier de destination existe déjà et n'a pas pu être supprimé lors du téléchargement
Tout ce que je veux, c'est envoyer les fichiers en pièces jointes dans cet email. Mon 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;
}
appelant la méthode pour préparer la pièce jointe:
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);
exception Obtenir:
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/:?]
cela fonctionnera parfaitement si je commente en ajoutant le second fichier :(
message.addAttachment(form.getFile2().getOriginalFilename(), file2);
un conseil?
Arrêtez de faire 'File.Delete()' quand il n'existe pas. Avez-vous vérifié que 'file.canRead()'? Que sort-il? – pedromss
J'ai ajouté le "file.delete()" en essayant de résoudre le problème. il va lancer la même erreur sans cela. – Samarland
Je ne sais pas pourquoi les gens donnent le vote, quand je vois vraiment que c'est un problème et pas facile !! – Samarland