js获取file控件的完整路径

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html >
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 <script type="text/javascript">
11 function fun()
12 {
13     alert(1);
14 }
15 function bao(str)
16 {
17     //alert(str);
18     //int n=Integer.parseInt(str);
19     var img="images/tx/";
20     img+=str;
21     img+=".gif";
22     img = "images/map.png";
23     //alert(img);
24     // 取得img节点
25     var imgNode=document.getElementById("picture");
26
27     // 修改img节点的src属性
28     imgNode.setAttribute("src",img);
29
30     //oDiv.innerHTML="<img src=images/tx/2.gif width=‘80‘ height=‘80‘ border=‘1‘ />";
31     //不能改变图片,src不能使变量!
32 }
33 function readFileFirefox(fileBrowser) {
34     try {
35     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
36     }
37     catch (e) {
38     alert(‘无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件‘);
39     return;
40     }
41     var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
42     var file = Components.classes["@mozilla.org/file/local;1"]
43     .createInstance(Components.interfaces.nsILocalFile);
44     try {
45     // Back slashes for windows
46     file.initWithPath( fileName.replace(/\//g, "\\\\") );
47     }
48     catch(e) {
49     if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
50     alert("File ‘" + fileName + "‘ cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
51     return;
52     }
53     if ( file.exists() == false ) {
54     alert("File ‘" + fileName + "‘ not found.");
55     return;
56     }
57     return file.path;
58     }
59     //根据不同浏览器获取路径
60     function getpic(){
61     //判断浏览器
62     var Sys = {};
63     var ua = navigator.userAgent.toLowerCase();
64     var s;
65     (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
66     (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
67     (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
68     (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
69     (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
70     var file_url="";
71     if(Sys.ie<="6.0"){
72     //ie5.5,ie6.0
73     file_url = document.getElementById("file").value;
74     }else if(Sys.ie>="7.0"){
75     //ie7,ie8
76     var file = document.getElementById("file");
77     file.select();
78     file_url = document.selection.createRange().text;
79     }else if(Sys.firefox){
80     //fx
81     //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
82     file_url = readFileFirefox(document.getElementById("file"));
83     }
84     alert(file_url);
85     img = file_url;
86     //alert(img);
87     // 取得img节点
88     var imgNode=document.getElementById("picture");
89
90     // 修改img节点的src属性
91     imgNode.setAttribute("src",img);
92
93     }
94 </script>
95     <input type ="file" id = "file" onchange="getpic()" />
96     <img id="picture"/>
97
98 </body>
99 </html>
<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();"> 
时间: 2024-07-29 10:58:46

js获取file控件的完整路径的相关文章

JS获取时间控件

引用JS文件: <script src="../js/my97/WdatePicker.js" type="text/javascript"></script> <script> function chkAddAction(){ var starttime = $.trim($('#starttime').val()); var endtime= $.trim($('#endtime').val()); if(starttime

Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名

string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string DirectoryName = Path.GetDirectoryName(FileUploadImg.PostedFile.FileName); //获取文件所在目录string Extension = Path.GetExtension(FileUploadImg.PostedFile.FileName); //

JS获取服务器端控件ID

很多时候我们需要在JS中对服务器端控件进行一些简单处理,但是这个时候没有必要回发到服务器,让服务器去处理,这个时候就又要用到JS了 那么怎么去获取这个服务器端控件呢?我们知道服务器最终返回到用户界面的其实就是一个HTML文件,所有的服务器控件最后都成为了普通意义上的HTML,必须TEXTBOX会成为一个<input type="text"....>这个时候,服务器端同样会给该HTML标签加上一个ID,以前写JS来获取这个ID 的时候常常就是用的这个ID,但是我们却不能总是用

js修改file控件的样式

<style type="text/css"> body { font-size: 14px; } input { vertical-align: middle; margin: 0; padding: 0; } .file-box { position: relative; width: 340px; padding-top: 20px; } .txt { height: 22px; border: 1px solid #cdcdcd; width: 180px; } .

Js获取file上传控件的文件路径总结

总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = function(){ alert(getFullPath(this)) } function getFullPath(obj){ if(!obj){return;} if(!-[1,]){obj.select();return document.selection.createRange().text;} r

js动态添加file控件

<html></head><script language="javascript" type="text/ecmascript">//======================//功能:在表单中input file控件//参数:parentID---要插入input file控件的父元素ID// inputID----input file控件的ID//======================function createI

Selenium IDE安装和检查获取的控件路径技巧

来源:http://www.jianshu.com/p/0ea2dc83549f 从学习Selenium 开始,都是自己写脚本,后来得知有个插件Selenium IDE可以录制脚本,也懒得用了,觉得自己写脚本挺好. 今天看别人的博客,发现Selenium IDE可以检查获取的控件路径是否正确不用通过执行程序的方式来校验,很直接,省去了执行程序的繁琐,特此学习一下. 环境:firefox浏览器,firebug插件,selenium IDE插件场景:通过Selenium IDE检测获取的百度首页中搜

使用Profile文件记录JFileChooser(或者File控件)最新打开的文件路径

一.描述 我们使用JFileChooser或者File控件打开Windows系统目录下的文件之后,如何保存我们最近打开的文件路径,使得每次打开文件就能打开最近一次打开的文件目录,而不是每次默认打开C:\Users\Administrator\Documents目录.我们需要使用Profile属性文件来记录最近打开的文件路径,在File控件打开文件前先读取配置文件中的最近文件目录,在打开文件后将路径保存到Profile文件中,在操作完毕点击确定按钮后写入Profile配置文件. 二.源代码 imp

File控件杂谈

我们通常使用<input type='file'/>来实现网页中文件上传功能,用户可以通过点击file控件选择本地文件,当我们提交包含该控件的表单时,浏览器会向服务器发送用户选中的文件. 看上面的描述,file控件貌似挺强大的,事实上也是这样的.但实际开发中我们也可以挑出file控件的诸多问题: 1.我们可以通过value属性获取用户选择的文件的名称,但出于安全因素,该属性只读,所以也就无法指定默认值. 2.最让我们诟病的是,file控件在不同浏览器上长相迥异.这让我们开发者情何以堪?而且“选