C:\fakepath\.不是完全正确的吗 ?物理路径就是这样的啊
<input type="file" ... />不能使用虚拟路径的,哪来的绝对路径一说?

解决方案 »

  1.   

    你用这种方式来解决,本身就是不太规范的。
    IE不同版本,firefox不同版本,chrome不同版本,surfer不同版本等等浏览器,再加上不同的操作系统,比如在linux中,在unix中,在windows的不同版本中,获取到的东西或多不少不太一样。你不要指望用这种方式可以一劳永逸解决所有浏览器。不知道你在这里获取这个的目的是什么。
      

  2.   

    获取的是本地文件路径的绝对路径啊;
    “C:\fakepath\.不是完全正确的吗 ?物理路径就是这样的啊。”谷歌浏览器不行,被篡改了(我知道是浏览器的问题,就是不知道用js如何去处理),比如ie里面获取的路径是 C:\Documents and Settings\Administrator\桌面\分析\绿钻贵族1.jpg
    到谷歌里面就变成了“C:\fakepath\绿钻贵族1.jpg”
      

  3.   

    function getPath(obj){
            if(obj){
            //ie
                    if (window.navigator.userAgent.indexOf("MSIE")>=1)
                    {
                        obj.select();
                        return document.selection.createRange().text;
                    }
                    //firefox
                    else if(window.navigator.userAgent.indexOf("Firefox")>=1)
                    {
                        if(obj.files)
                        {
                            return obj.files.item(0).getAsDataURL();
                        }
                        return obj.value;
                    }
                    return obj.value;
            }
            }
    ie和firefox已经可以的。一个网站的某个小功能,我现在只需要解决通过它<input type="file" ... />获取客户端选择的文件路径,谷歌下js得不到
      

  4.   


    这种方式不是可取的。
    在不同的os,如linux,windows不同版本,你可以试试,拿到的东西不一样的。
      

  5.   

    如果你只是在特定os下,在特定浏览器下,那就按照你说的做。其实主要取决于user
      

  6.   

    刚刚找到分享下。http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1129/16284.html
    可能是我描述的不清楚吧,亲,我只需要得到一个兼容的获取路径的方案,置于平台不考虑,只是个网站的某个功能而已哦,非常感谢您的回答,我再测试测试下
      

  7.   


    恩,ok!<script type="text/javascript">
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var s;
    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
    (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
    (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
    (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
    //以下进行测试
    if (Sys.ie) document.write('IE: ' + Sys.ie);
    if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
    if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
    if (Sys.opera) document.write('Opera: ' + Sys.opera);
    if (Sys.safari) document.write('Safari: ' + Sys.safari);
    </script>
      

  8.   

    已经解决,参考这位仁兄的:
    他的原问题:http://q.cnblogs.com/q/28119/
    下面是他的解决方法:
    http://www.tnmblogs.com/Post.aspx?Post=b5517078-bd85-426f-b97c-ae9c9b6dab56
    也谢谢各位提供的思路
      

  9.   

    非IE都不不能直接通过$("input[type='file']").val()得到路径的,这是安全性设置的问题的
    即使是IE,也是不能直接得到的,这需要修改设置才能得到
    只有下面的设置设置成允许才能得到
      

  10.   

    我也遇到了这个问题,但是不知道怎么解决。还请仁兄指教。
    代码如下:
    html部分:
    <td>
    <a style="cursor:hand" onclick="go();">
         <img  alt="添加" src="images/pltj.png" title="添加用户">
    </a>
    <input type="file" name="cfile" id="cfile">

    </td>
    javascript部分:
    function go()
    {

    var file=document.getElementById("cfile").value;
    alert(file);
    window.location.href="consumer_add_pltj.jsp?file="+file;
    }
      

  11.   

    另外,我用的是google chorme浏览器
      

  12.   

    lz嫩帮我看一下吗:
                if (Sys.ie <= "6.0") {
                    //ie5.5,ie6.0
                    file_url = document.getElementById("file").value;
                } else if (Sys.ie >= "7.0") {
                    //ie7,ie8
                    var file = document.getElementById("file");
                    file.select();
                    file_url = document.selection.createRange().text;
                } else if (Sys.firefox) {
                    //fx
                    //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
                    file_url = readFileFirefox(document.getElementById("file"));
                }
                else if (Sys.chrome)
                {            }
    谷歌不知道怎么写了
      

  13.   

    楼主 能有兼容IE7、IE8、IE9的方法吗?
     var file = document.getElementById("file");
                    file.select();
                    file_url = document.selection.createRange().text;
    谢谢,貌似这么写IE9有问题啊
      

  14.   

    http://www.iefans.net/ie-shangchuan-bendi-lujing-fakepath/  
    参考这样的方法解决了