java - 附加文件没有完整路径名

标签 java servlets file-upload path

每当我尝试在网络浏览器(Google chrome 或 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

如何解决这个问题?如何获取我上传文件的完整地址?

最佳答案

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

如果你想将上传的文件存储在服务器上,那么你需要将上传的文件存储在本地服务器文件系统上,然后将其传递给JavaMail API。

关于java - 附加文件没有完整路径名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1679048/

相关文章:

java - 创建新对象或重用旧对象Java

java - 通过泛型对象类型访问类的方法

java - 通过javascript填充html中禁用的输入字段并通过servlet读取它

node.js - 对比 Node.js 和 Servlets 3.1 非阻塞 IO

php - 如何读取用PHP上传的文件的标题?

Java - 通过模板比较长值

Java 泛型,以类对象作为泛型类型

java - 这段代码有什么缺陷吗?

php - 使用 CDN 进行用户图像和视频上传

javascript - Safari XHR 上传卡住(有时)