为什么输入type =“file”无法在浏览器上运行

时间:2014-05-16 06:06:37

标签: java html myeclipse

我只是编写一个代码,用于在MyEclipse上使用Java mail API发送邮件。对于附件我使用

 <input type="file" name="attachment"/> 

在MyEclipse上我的代码运行并且邮件已成功发送但如果我在浏览器上尝试过(例如mozilachrome),则不会选择整个附件路径(例如:D:/newfolder/img.png) ,仅选择了filename(例如:img.png)。

导致错误/例外:

 java.io.FileNotFoundException: img.png (The system cannot find the file specified)

是否有其他方法可以附加或上传文件..?

3 个答案:

答案 0 :(得分:0)

当您上传文件时,该文件将在POST请求中发送,您可以读取所有内容和文件名,但服务器将无法使用原始路径。

遵循HTML5的规范,默认情况下,某些浏览器会隐藏文件路径,特别是Internet Explorer 8+和某些版本的Mozilla Firefox。

这被视为浏览器的安全功能,但将相关网站添加到“可信站点”#34;浏览器配置中的列表将允许公开完整路径。

我发现了这个:barracuda

答案 1 :(得分:0)

我想你已经忘记了这个enctype="multipart/form-data"

<form action="upload_file.jsp" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

答案 2 :(得分:0)

显然,您正在尝试在服务器上打开从客户端上传的文件。

您必须从请求中读取传入的字节,并将其保存在磁盘或数据库中的某个位置。

您看到的文件名严格来帮助您定义名称以将文件保存在服务器上。您无法通过直接读取路径来访问客户端文件。