chrome upload file 出现 fakepath,请解决方案

用chrome上传图片,在浏览器的开发者模式中,看到图片地址被改成file:\c:\fakepathxxx.jpg了,网上搜了很多,都说的很模糊,而且没能解决这个问题,哪位大神帮忙解决一下,拜谢!

阅读 16.3k
6 个回答

自己倒腾了半天,终于解决了,并在chrome浏览器上验证可行,方法如下:
function getImgURL(node) {

    var imgURL = "";
    try{
        var file = null;
        if(node.files && node.files[0] ){
            file = node.files[0];
        }else if(node.files && node.files.item(0)) {
            file = node.files.item(0);
        }
        //Firefox 因安全性问题已无法直接通过input[file].value 获取完整的文件路径
        try{
            //Firefox7.0
            imgURL =  file.getAsDataURL();
            //alert("//Firefox7.0"+imgRUL);
        }catch(e){
            //Firefox8.0以上
            imgURL = window.URL.createObjectURL(file);
            //alert("//Firefox8.0以上"+imgRUL);
        }
    }catch(e){      //这里不知道怎么处理了,如果是遨游的话会报这个异常
        //支持html5的浏览器,比如高版本的firefox、chrome、ie10
        if (node.files && node.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                imgURL = e.target.result;
            };
            reader.readAsDataURL(node.files[0]);
        }
    }
    return imgURL;
}

注意在传递node的时候要传递document.getElementById 获取的节点,不要用jquery的方式去获取节点

新手上路,请多包涵

获取出来的值是加了密的啊 我上传要使用的地址要怎么解析 blob:http:localhost:808077b295b4-a8b0-40f2-8523-63446f5fedfd (文件名、目录名或卷标语法不正确。) 这是通过此方法获取的文件路径,我只是要某个盘符下的某个具体文件

新手上路,请多包涵

"获取出来的值是加了密的啊 我上传要使用的地址要怎么解析 blob:http:localhost:808077b295b4-a... (文件名、目录名或卷标语法不正确。) 这是通过此方法获取的文件路径,我只是要某个盘符下的某个具体文件"
你好,请问你最终这么解决上述问题的呢???

新手上路,请多包涵

运行得到的结果:
blob:http://localhost:3012/c078085f-f2cc-467f-8014-224c2175295b

请问最后有得到路径嘛?

新手上路,请多包涵

blob:http://127.0.0.1:8080/a1b6c5f2-1da6-4648-8afd-3dee8241317b
要你有何用,再解决不了,我就要切腹自尽了...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题