IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题

IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题
你可以通过设置浏览器安全选项得到真实路径:

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

但是,作为开发者,我们不能指望客户去这么做,所以我们必须通过代码解决这个问题。

例如我的上传文件控件的HTML代码是:
<input id="file_upl" type="file" />
那么在JS代码中我就可以这样来获取真实的文件路径:

var file_upl = document.getElementById('file_upl');
file_upl.select();

var realpath = document.selection.createRange().text;


此方案只针对IE浏览器,对其他浏览器火狐,js代码如下:

//附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列

function getPath(obj)  //参数obj为input file对象

  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; 
    } 
}

你可能感兴趣的:(IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题)