FireFox3中input file
来源:互联网 发布:师洋淘宝骂人截图 编辑:程序博客网 时间:2024/05/10 06:43
document.getElementByIdx('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都不支持!
再回到本文一开始所提的那个问题上来。即然我不能在FireFox中得到用户所选文件的本地路径,而且采用getAsDataURL()方法得到的这个路径也不能体现通用性,那怎么才能彻底解决这个问题呢?简单思考一下,浏览器为什么能够调用OS的文件打开对话框,从而进一步得到用户所选的文件的信息呢?浏览器不是仅仅只能解释HTML文本么?没错,这个是浏览器的基本功能,至于如果调用OS提供的功能接口,那是浏览器的各个不同厂商自己要做的工作,这个似乎没有一个统一的标准,也不会被列入到W3C的规范中,FireFox3就是一个特例。这样看来,我们只有自己编写代码来调用OS的文件打开对话框了,这看起来是一件非常辛苦的事情,最好的办法莫过于编写ActiveX控件嵌入到浏览器中来执行,幸运的是IE和FireFox都提供了现成的方法供我们调用,我们只需要在js脚本中调用即可。
- FireFox3中input file
- HTML中input:file标签的使用
- input file
- input file
- input file
- ubuntu中firefox3.5配置amule
- firefox3不能获得html file的全路径的问题
- firefox3不能获得html file的全路径的问题
- 在不同浏览器中获取File Input的路径
- js清除input中type等于file的值域
- evc 中提示:cannot open input file Ddraw.lib,是什么原因?
- <input type="file">中怎设置按钮的样式
- input type=file accept中可以限制的文件类型
- WebView中支持input的file的选择
- asp.net中通过input file上传文件
- input type=file accept中可以限制的文件类型
- input type=file accept中可以限制的文件类型
- angularJs 取<input type='file'>中文件名
- 请记住这一天2011/5/8
- 用UIAlertView绘制弹出对话框
- 【转】LaTeX制作pdf文件书签乱码问题
- 什么是分布式应用开发
- 进程线程及堆栈关系的总结
- FireFox3中input file
- DSP中GEL文件的作用
- PHP导出EXCEL快速开发指南--PHPEXCEL
- 使用源代码设置控件位置/隐藏tabbar
- javascript的对象创建和使用
- 函数指针
- 何为分布式应用开发模式
- hypervisor
- 程序员编程艺术:第三章续、Top K算法问题的实现