Hi,
Yes, it is absolutely resolved.
This is the code to get the attached files,
Object content = p.getContent();
if (content instanceof Multipart) {
Multipart mp = (Multipart) content;
for (int j = 0; j < mp.getCount(); j++) {
Part part = mp.getBodyPart(j);
String disposition = part.getDisposition();
if ((disposition !=
null) && (disposition.equalsIgnoreCase(Part.ATTACHMENT) ||
disposition.equalsIgnoreCase(Part.INLINE))) {
// Check if plain
MimeBodyPart mbp = (MimeBodyPart) part;
if (!mbp.isMimeType("text/plain")) {
DataFile df = new DataFile();
df.setContentType(mbp.getContentType());
String filename =
decodeName(part.getFileName());
if (filename == "unknown"){
filename = "Attachment" + attnum;
filename = setFileExtension(mbp,
filename);
}
df.setFileName(filename);
String downloadDir =
getServletConfig().getServletContext().getRealPath(null);
//File savedir = new File(downloadDir);
//savedir.mkdirs();
File savefile = new File(downloadDir,
filename);
df.setFile(savefile);
saveFile(savefile, part);
dfList.add(df);
}
}
} // end of multipart for loop
}
being decodeName(part.getFileName()) as follows,
private String decodeName( String name ) throws Exception {
if(name == null || name.length() == 0){
return "unknown";
}
String ret = java.net.URLDecoder.decode( name, "UTF-8" );
// also check for a few other things in the string:
ret = ret.replaceAll("=\\?utf-8\\?q\\?", "");
ret = ret.replaceAll("\\?=", "");
ret = ret.replaceAll("=20", " ");
return ret;
}
For a complete version of the code see the attachment file.
Regards,
Jose
--
[Message sent by forum member 'josealvarezdelara']
View Post: http://forums.java.net/node/843703