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

  • Post author:
  • Post category:其他


在使用控件上传文件时,不论是什么路径上传的文件,路径都变成了”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