2009-11-05 89 views
0

每当我尝试从网页浏览器(谷歌浏览器或Mozzila)的HTML页面附加任何文件并发送到Servlet,我只是得到文件的名称,而没有它完整的路径。如果我从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 

我怎样才能摆脱这个问题的?如何获得我上传文件的完整地址?

+1

为什么你需要完整的路径? – skaffman 2009-11-05 08:12:17

+0

我需要它,因为我想以附件形式发送邮件。 – Unknown 2009-11-05 08:12:59

+0

假设你获得了该文件的路径。现在你可以坐在服务器上做什么。您无法访问上传文件的客户端计算机。我希望你明白我的观点。 – 2009-11-05 08:30:34

回答

2

即使您要获取完整路径,它也将是客户端计算机上文件的路径,而服务器无法访问该路径。

如果要将上传的文件存储在服务器上,则需要将上传的文件存储在本地服务器文件系统中,然后将其传递到JavaMail API。

0

要点:你不应该发送文件路径,但你应该发送文件内容。

想象一下,我是服务器,并且在本地磁盘系统中有一个文件路径“c:/passwords.txt”,您可以告诉我它的内容是什么吗?