Прикрепление файла с неполным путем

Всякий раз, когда я пытаюсь прикрепить любой файл со страницы HTML в веб-браузере (либо Google Chrome, либо Mozzila) и отправить его в сервлет, я просто получаю имя файла без полного пути. Если я прикреплю какой-либо файл с диска C, я не получу его полный адрес. И всякий раз, когда я пытаюсь отправить это имя файла на почтовый сервер, я получаю исключение:

Caused by: java.io.FileNotFoundException: Hello.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at javax.activation.FileDataSource.getInputStream(Unknown Source)
    at javax.activation.DataHandler.writeTo(Unknown Source)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1381)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:852)
    at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:452)
    at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:98)
    at javax.activation.ObjectDataContentHandler.writeTo(Unknown Source)
    at javax.activation.DataHandler.writeTo(Unknown Source)
    at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1381)
    at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1742)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:737)
    ... 18 more

Как я могу избавиться от этой проблемы? Как получить полный адрес моего загруженного файла?


person Unknown    schedule 05.11.2009    source источник
comment
зачем вам полный путь?   -  person skaffman    schedule 05.11.2009
comment
Мне это нужно, потому что я хочу отправить письмо в виде вложения.   -  person Unknown    schedule 05.11.2009
comment
Предположим, вы получили путь к этому файлу. Теперь что вы можете сделать, сидя на сервере. Вы не можете получить доступ к клиентскому компьютеру, который загрузил файл. Надеюсь, вы поняли мою точку зрения.   -  person Adeel Ansari    schedule 05.11.2009
comment
Вы установили форму enctype="multipart/form-data"? Как вы анализируете данные MIME, отправленные из браузера?   -  person McDowell    schedule 05.11.2009


Ответы (2)


Даже если бы вы получили полный путь, это был бы путь к файлу на клиентской машине, к которому у сервера нет доступа.

Если вы хотите сохранить загруженный файл на сервере, вам необходимо сохранить загруженный файл в файловой системе локального сервера, а затем передать его API JavaMail.

person skaffman    schedule 05.11.2009

В точку: вы не должны отправлять путь к файлу, но вы должны отправить содержимое файла.

Представьте, что я сервер и у меня есть путь к файлу "c:/passwords.txt" здесь, в моей локальной дисковой системе. Можете ли вы как клиент сказать мне, что это за содержимое?

person BalusC    schedule 05.11.2009