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 相关文章推荐
javascript Demo模态窗口
Dec 06 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
轻量级网页遮罩层jQuery插件用法实例
Jul 31 Javascript
JavaScript基于对象去除数组重复项的方法
Oct 09 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
js实现上传并压缩图片效果
Jan 10 Javascript
详解使用create-react-app添加css modules、sasss和antd
Jul 31 Javascript
Vue一个案例引发的递归组件的使用详解
Nov 15 Javascript
vue实现虚拟列表功能的代码
Jul 28 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 Javascript
vue实现可拖拽的dialog弹框
May 13 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/12/01 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
javascript观察者模式实现自动刷新效果
2017/09/05 Javascript
Vue.js组件通信的几种姿势
2017/10/23 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
Python 的AES加密与解密实现
2019/07/09 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
好邻里事迹材料
2014/01/16 职场文书
预备党员政审材料
2014/02/04 职场文书
应届大专生求职信
2014/06/26 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python