在使用控件上传文件时,不论是什么路径上传的文件,路径都变成了”C:\fakepath\”+文件名的形式。
原来在IE7及以前的IE浏览器版本上都没有问题,换到了IE8上面,就不行了。
在IE8中你只能获取到的上传文件的路径:”C:\fakepath\xxx”,其中xxx是你的文件名。
经查询,这是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