IE升级到IE8后,文件上传时获取文件真实的路径也出现了问题
备注:本来是html代码的,但一发表就变成这样了,只好把代码截图,“fileUpload”为name名
html代码
用js获取路径时:
var file=
document.getElementByIdx_x_x_x('fileUpload').value;
然后用alert(file);可以看到所上传文件的真实路径
但是,在IE8下,却发现,得到的文件路径是C:\fakepath\xxx.txt
原来,自从IE升级到IE8及以上版本,都提升了安全级别,默认是不会获取文件的真实路径的
都用fakepath替代了
现在有以下两个方法可以解决这个问题
一,修改浏览器的安全级别,步骤是
工具 -> Internet选项 -> 安全 -> 自定义级别 ->
找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
当然这一种方法不可取,因为你不可能要求所有的用户都这样设置浏览器,而且你也不能保证
第二种方法,用js代码修改
兼容ie ,firefox全系列
html代码:
js代码:
function getPath(obj) { if(obj) {
if
(window.navigator.userAgent.indexOf("MSIE")>=1) { obj.select();
return
document.selection.createRange().text; }
else
if(window.navigator.userAgent.indexOf("Firefox")>=1) { if(obj.files) {
return obj.files.item(0).getAsDataURL(); } return obj.value; } return
obj.value; } }