以前は動作していたコードですが、現在は失敗し始めています。サーバー上で何かが変更された可能性があります。パーミッションなどです。修正するには、それが何であるかを把握する必要があります。
基本的に私は持っています:
- ファイルをサーバーに送信する POST リクエスト
- ファイルは電子メールで添付ファイルとして送信されます
Mimeparts を準備するコードは次のとおりです。
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//parse request
List<?> items = upload.parseRequest(request);
HashMap<String, FileItem> form = new HashMap<String, FileItem>();
Iterator<?> iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
form.put(item.getFieldName(), item);
}
//handle attachment
if(form.containsKey("uploaded_file"))
{
FileItem fileItem = form.get("uploaded_file");
String fileName = fileItem.getName();
File f = new File(fileName);
try {
InputStream inputStream = fileItem.getInputStream();
OutputStream out=new FileOutputStream(f);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
MimeBodyPart attachment = new MimeBodyPart();
attachment.setDataHandler(new DataHandler(new FileDataSource(f)));
attachment.setFileName(fileName);
}
//below I use a javax.mail.Transport to send it via email
//mimeparts : new MimeBodyPart[]{attachment}
コードは正常に動作していましたが、この例外をスローし始めました:
javax.mail.MessagingException: メッセージの送信中に IOException が発生しました。 ネストされた例外は次のとおりです。 java.io.FileNotFoundException: upload_file_name.zip (許可が拒否されました) com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141) javax.mail.Transport.send0(Transport.java:195) javax.mail.Transport.send(Transport.java:124)