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 按回车键相应按钮提交事件
Nov 02 Javascript
JavaScript类和继承 prototype属性
Sep 03 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
jQuery如何跳转到另一个网页 就这么简单
Dec 28 Javascript
脚本div实现拖放功能(两种)
Feb 13 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
实例讲解v-if和v-show的区别
Jan 31 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
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
dedecms系统常用术语汇总
2007/04/03 PHP
php 全局变量范围分析
2009/08/07 PHP
php 获取客户端的真实ip
2009/11/30 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
js活用事件触发对象动作
2008/08/10 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python调用飞书发送消息的示例
2020/11/10 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
一些Solaris面试题
2013/03/22 面试题
求职信的要素有哪些呢
2013/12/26 职场文书
银行演讲稿范文
2014/01/03 职场文书
小学教研工作制度
2014/01/15 职场文书
高中语文教学反思
2014/01/16 职场文书
函授自我鉴定范文
2014/02/06 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
二年级学生期末评语
2014/12/26 职场文书
银行求职信模板
2015/03/20 职场文书
新员工辞职信范文
2015/05/12 职场文书
解析Redis Cluster原理
2021/06/21 Redis
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android