现在的位置: 网页制作教程网站制作经验 >正文
JavaScript脚本

获取上传文件的路径变成C:\fakepath\

发表于2016/11/25 网站制作经验 0条评论 ⁄ 热度 9,146℃

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

相关阅读:网站不能上传图片

  • 暂无评论