温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
你可以通过设置浏览器安全选项得到真实路径:

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

posted on 2011-12-31 10:21 雪山飞鹄 阅读(4392) 评论(2)  编辑  收藏 所属分类: js

Feedback

# re: IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题 2012-11-22 14:07 ss
问一下,这个obj是什么啊?  回复  更多评论
  

# re: IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题 2013-07-25 10:14 feilian09
挺好,如果有一个实际的例子会更加的完善  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: