私はそれを理解しました。偽のパスは、ブラウザのセキュリティ機能でした。 Tomcatを使用しても、ファイルは実際にtomcatフォルダ内のtempフォルダに格納されます。だから私はちょうど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 Messageのマルチパートも作成する必要があります。しかし、それはかなり単純です。
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);
あなたはファイルのアップロードを処理するために何を使用していますか? @MultipartConfigまたはApache Commons Fileupload?私はあなたが「入力値を取る」ということは何を意味するのか分かりません。フォームフィールド自体は何も役に立たないでしょう。あなたのコードの一部を投稿できますか? – Perception
@Perception入力フィールドは、私がアップロードを処理するために使用しているものです。それは基本的にファイルを取得してフィールドとして渡すようですが、明らかにローカルファイルに対してのみ機能します。私はちょうどその入力フィールドから値を取って、今すぐ通過します。私は、ファイルをアップロードして、代わりにJavaを使ってそのように処理するものを見つけようとしています。何か案は? – banjokaboom
私は参照してください。そしてあなたは、あなたが送信する電子メールの添付ファイルとして使用するために、自分のコンピュータからファイルをアップロードすることができるようにこれを使用したいですか? – Perception