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 ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
js实现一个简单的数字时钟效果
Mar 29 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
node.js中grunt和gulp的区别详解
Jul 17 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
JS/jQuery实现超简单的Table表格添加,删除行功能示例
Jul 31 jQuery
JS脚本实现定时到网站上签到/签退功能
Apr 22 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 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写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
javascript版2048小游戏
2015/03/18 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python实现读取命令行参数的方法
2015/05/22 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
解决Python安装cryptography报错问题
2020/09/03 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
公司联欢晚会主持词
2014/03/22 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
第二课堂活动总结
2014/05/07 职场文书
公关活动策划方案
2014/05/25 职场文书
会计学专业求职信
2014/07/17 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
员工离职感谢信
2015/01/22 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android