我的網絡應用程序是在Spring MVC上製作的。我有一種方法,用戶可以上傳PDF文件 。 我將文件作爲mutlipart文件發送到服務器。每次用戶上傳。目標文件已經存在,上傳時無法刪除
我想要的是發送文件作爲電子郵件中的附件。 我的代碼
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;
}
調用該方法準備附件:
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);
獲取例外:
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/:?]
這將很好地工作,如果我註釋掉添加第二個文件:(
message.addAttachment(form.getFile2().getOriginalFilename(), file2);
有什麼建議嗎?
停止做'file.delete()'當它不存在。你有沒有檢查過'file.canRead()'?它輸出什麼? – pedromss
我添加了「file.delete()」,試圖解決這個問題。它會在沒有它的情況下拋出相同的錯誤。 – Samarland
我不知道爲什麼人們放棄選票,當我真的看到這是一個問題,而不是一個簡單的! – Samarland