浅谈FireFox中file控件不能取到客户端文件的完整路径的问题

 

相信很多人都使用过<input type="file"/>这样的HTML控件,它看起来 非常普通,是我们在做Web应用程序中用于上传客户端本地文件时不可缺少的控件 ,然而最近我发现这个控件在最新的FireFox浏览器(或者最新的IE8中也会存在 这个问题,我没有尝试过,读者可以试一下)中却失去了效果,导致我们在通过 这个控件的value属性得到的值中只包含了文件名而没有文件路径,这个在IE7中 是可以正常获取到全文件名的(即文件完整路径+文件名)。IE7和大部分当前流 行的浏览器(如FireFox2版本)都可以获取到文件的路径,但是FireFox3却不行 ,我查了很多资料,发现这是FireFox3为了弥补在低版本中可能会引起安全问题 的一个漏洞,据说黑客会通过FireFox的这一安全隐患向服务器上传文件!其实我 也搞不懂,不就是本地文件的路径么?怎么会影响到服务器的安全问题呢?看来 高手们还真的很强!!

来说说我为什么要得到本地所选的文件的路径。大家都知道163邮箱,里面在 上传邮件附件的时候是允许选择多附件的,我要做的功能类似于这个,不过我在 这里并不是要研究163是如何实现这个功能,我只想在用户选择文件的时候动态在 一个Div中添加他所选择的文件的信息和一个删除按钮,然后将这个文件的信息保 存在页面的一个隐藏域中,当用户保存页面时服务器端代码根据页面隐藏域中的 信息将用户所选的文件上传到服务器上。当然,页面隐藏域中的信息至少要包含 用户本地所选文件的路径,否则就不知道在什么地方去找文件了。有关如何实现 动态添加HTML节点不是本文的重点,这里我也不贴代码了,下面说说我所遇到的 问题。

下面是一段用于测试问题的代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
    <input id="File1" type="file" /><input id="btAdd" type="button" value="Add" onclick="alert(document.getElementById ('File1').value);" />
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值