Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35523
  • 博文数量: 16
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 09:59
文章分类

全部博文(16)

文章存档

2010年(16)

我的朋友

分类: 系统运维

2010-08-18 10:53:36


通过测试,IE7(IE8没有测试国)也是能够获得完整的文件路径名字的,关键问题皆是在firefox,由于ff出于自身安全顾虑,ff3.0开始,只能获得文件名字,但是如果要获得完整的文件名,提供了一个nsIDOMFile的接口,让用户可以获得加密过的文件全路径,这个仅在ff3.0以上支持,其他浏览器皆不支持。

以下具体解释是网上某牛人的帖子,解释了firefox获取全路径的方式和原理:
-------------start--------------
document.getElementById('my-file').files方法用于获取到用户所选择的文件的集合,一般情况下都是选择单 一文件(貌似FireFox这样做是支持多文件选择的,不过没有试过,读者可以自己去尝试),item数组可以得到其中的某一个文件,然后我们就可以使用 nsIDOMFile所提供的属性和方法了。它包括2个属性和3个方法:

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

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

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

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

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

    读者可以参考这个地址:https://developer.mozilla.org/en/nsIDOMFile

    有一点需要说明,方法getAsDataURL()可以取得用户所选文件的本地路径,但是这个路径的字符串文本被FireFox加密了,并且这段密文只能 被FireFox识别,其它的浏览器不能识别,也就是说我将被加密后的路径直接赋值给一个img标签的src属性,在FireFox中是可以直接显示出图 片的,而在IE中却不行。从这一点来看,FireFox是不是有点王者风范呢?居然连大名鼎鼎的IE都不支持!

源地址:http://www.cnblogs.com/jaxu/archive/2009/04/19/1439016.html

------------end--------------


以下是另一个转载的帖子
============华丽丽转载分割线==============
在ie6中对于通过obj.value是可以获取客户端选择文件的全路径的,但是到ie7就只能获取文件名,这对于onchange事件立即显示图片会有问题,可以用js方法解决

具体代码如下:


   
        get file input full path
   
   
   
       
   
   
阅读(3258) | 评论(0) | 转发(0) |
0

上一篇:完全转换UTF-8为GB2312的PHP函数(转载)

下一篇:没有了

给主人留下些什么吧!~~