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扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
JavaScript“尽快失败”的原则实例详解
Oct 08 Javascript
Angularjs 依赖压缩及自定义过滤器写法
Feb 04 Javascript
VUE开发一个图片轮播的组件示例代码
Mar 06 Javascript
解析jquery easyui tree异步加载子节点问题
Mar 08 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 Javascript
vue开发中遇到的问题总结
Apr 07 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP调用Webservice实例代码
2011/07/29 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Python+django实现简单的文件上传
2016/08/17 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
Python中format()格式输出全解
2019/04/12 Python
Django中create和save方法的不同
2019/08/13 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python 进程池pool使用详解
2020/10/15 Python
python 实现波浪滤镜特效
2020/12/02 Python
如何开启linux的ssh服务
2013/06/03 面试题
应届生高等护理求职信
2013/10/12 职场文书
法制报告会主持词
2014/04/02 职场文书
初中美术教学反思
2016/02/17 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
如何使用pdb进行Python调试
2021/06/30 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python