js如何获取file控件的完整路径具体实现代码


Posted in Javascript onMay 15, 2013

今天做一个项目,需要隐藏input file然后获取它的值,但连jquery都无法获取它的值

<script type="text/javascript"> 
//FX获取文件路径方法 
function readFileFirefox(fileBrowser) { 
try { 
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
} 
catch (e) { 
alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件'); 
return; 
} 
var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。 
var file = Components.classes["@mozilla.org/file/local;1"] 
.createInstance(Components.interfaces.nsILocalFile); 
try { 
// Back slashes for windows 
file.initWithPath( fileName.replace(/\//g, "\\\\") ); 
} 
catch(e) { 
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e; 
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file."); 
return; 
} 
if ( file.exists() == false ) { 
alert("File '" + fileName + "' not found."); 
return; 
} 
return file.path; 
} 
//根据不同浏览器获取路径 
function getvl(){ 
//判断浏览器 
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; 
var file_url=""; 
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")); 
} 
//alert(file_url); 
document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url; 
} 
</script> 
<h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1> 
<div id="text" style="color:#f00;"></div> 
<input type="file" id="file" /> 
<input name="" type="button" value="获取" onClick="getvl();">
Javascript 相关文章推荐
基于JQUERY的两个ListBox子项互相调整的实现代码
May 07 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
Dec 20 Javascript
JS实现HTML标签转义及反转义
Apr 14 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
js断点调试心得分享(必看篇)
Dec 08 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
JS实现数组深拷贝的方法分析
Mar 06 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
使用webpack将ES6转化ES5的实现方法
Oct 13 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 #Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
May 15 #Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
May 15 #Javascript
JQuery的AJAX实现文件下载的小例子
May 15 #Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
May 15 #Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
May 15 #Javascript
js判断FCKeditor内容是否为空的两种形式
May 14 #Javascript
You might like
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
jQuery版仿Path菜单效果
2011/12/15 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python多进程机制实例详解
2015/07/02 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
详解pandas赋值失败问题解决
2020/11/29 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
Linux面试题LINUX系统类
2015/11/25 面试题
体育老师的教学自我评价分享
2013/11/19 职场文书
配件采购员岗位职责
2013/12/03 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
公务员个人总结
2015/02/12 职场文书
倡议书范文大全
2015/04/28 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL