六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 62|回复: 0

javascript获取file控件全路径

[复制链接]

升级  42%

96

主题

96

主题

96

主题

举人

Rank: 3Rank: 3

积分
326
 楼主| 发表于 2013-2-7 15:53:25 | 显示全部楼层 |阅读模式
firefox获取全路径的方式和原理:
document.getElementById('my-file').files方法用于获取到用户所选择的文件的集合,一般情况下都是选择单一文件(貌似FireFox这样做是支持多文件选择的,不过没有试过,读者可以自己去尝试),item数组可以得到其中的某一个文件,然后我们就可以使用 nsIDOMFile所提供的属性和方法了。它包括2个属性和3个方法:

fileName:用于获取到用户所选文件的名称,这和直接取value值所得到的结果一样。

fileSize:得到用户所选文件的大小。

getAsBinary():得到用户所选文件的二进制数据。

getAsDataURL():得到用户所选文件的路径,该路径被加密了,目前只能在FireFox中使用。

getAsText():得到用户所选文件的指定字符编码的文本。

  有一点需要说明,方法getAsDataURL()可以取得用户所选文件的本地路径,但是这个路径的字符串文本被FireFox加密了,并且这段密文只能被FireFox识别,其它的浏览器不能识别,也就是说我将被加密后的路径直接赋值给一个img标签的src属性,在FireFox中是可以直接显示出图片的,而在IE中却不行。
 
<html>    <head>        <title>get file input full pathtitle>    <script language='javascript'>        function getFullPath(obj)        {            if(obj)            {                if (window.navigator.userAgent.indexOf("MSIE")>=1)    //ie                {                    obj.select();                    return document.selection.createRange().text;                }                else if(window.navigator.userAgent.indexOf("Firefox")>=1)             //firefox                {                    if(obj.files)                    {                        return obj.files.item(0).getAsDataURL();                    }                    return obj.value;                }                return obj.value;            }        }    </script>     <head>    <body>        <input type="file" onchange="document.getElementById('img').src=getFullPath(this);" />    <img id="img" />    </body></html> 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表