c 上传文件路劲为服务器路径,获取上传文件的路径变成C:\fakepath\

在使用控件上传文件时,不论是什么路径上传的文件,路径都变成了"C:\fakepath\"+文件名的形式。

原来在IE7及以前的IE浏览器版本上都没有问题,换到了IE8上面,就不行了。

在IE8中你只能获取到的上传文件的路径:"C:\fakepath\xxx”,其中xxx是你的文件名。

c4654e15c9112e9f851c47731fff41ea.png

经查询,这是ie8下的安全设置问题。

原来,IE8出于安全性的考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。

如果我们想要获取真实的本地文件路径怎么办呢? 你可以通过设置浏览器安全选项得到真实路径:

Internet选项 -> 安全 -> 自定义级别 -> 将本地文件上载至服务器时包含本地目录路径 -> 选“启动” -> 确定

但作为开发人员,我们不希望用户去设置浏览器,我们必须通过代码解决这个问题。

下方的是不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列的代码。

//参数obj为input file对象

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;

}

}

声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/257.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值