Я понял это. Поддельный путь был функцией безопасности в браузерах. Что происходит с tomcat, так это то, что файл фактически хранится во временной папке внутри папки tomcat. Поэтому мне просто нужно было поиграть с библиотекой Tomcat, commons.fileupload, и я использовал ее для извлечения данных из файла, независимо от местоположения ложного пути.
//Handle File Upload for the attachment
ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
try{
List fileItemsList = servletFileUpload.parseRequest(request);
//TODO: Take datafile input from the field and pass the file name so that we can view the file name
Iterator it = fileItemsList.iterator();
while (it.hasNext()){
FileItem fileItem = (FileItem)it.next();
if (fileItem.isFormField()){
/* The file item contains a simple name-value pair of a form field */
}
else{ //do what you want with the file}
Затем я передал его своей почтовой утилите, изменил имя файла на правильное имя, чтобы оно имело правильное расширение, и оно заработало. Конечно, вы должны закодировать форму как составную форму, а также сделать сообщение Mime составным. Но это довольно просто после всего этого.
MimeBodyPart textPart = new MimeBodyPart();
textPart.setContent(body, "text/html");
MimeBodyPart attachFilePart = new MimeBodyPart();
FileDataSource fds =
new FileDataSource(file);
attachFilePart.setDataHandler(new DataHandler(fds));
attachFilePart.setFileName(fileName);
Multipart mp = new MimeMultipart();
mp.addBodyPart(textPart);
mp.addBodyPart(attachFilePart);