js获取file控件的完整路径(上传图片预览)
2015-03-21 10:48
836 查看
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <script type="text/javascript"> function fun() { alert(1); } function bao(str) { //alert(str); //int n=Integer.parseInt(str); var img="images/tx/"; img+=str; img+=".gif"; img = "images/map.png"; //alert(img); // 取得img节点 var imgNode=document.getElementById("picture"); // 修改img节点的src属性 imgNode.setAttribute("src",img); //oDiv.innerHTML="<img src=images/tx/2.gif width='80' height='80' border='1' />"; //不能改变图片,src不能使变量! } 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 getpic(){ //判断浏览器 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); img = file_url; //alert(img); // 取得img节点 var imgNode=document.getElementById("picture"); // 修改img节点的src属性 imgNode.setAttribute("src",img); } </script> <input type ="file" id = "file" onchange="getpic()" /> <img id="picture"/> </body> </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();">
相关文章推荐
- 上传时获取文件的完整路径图片预览的js代码(兼容Firfox和IE)
- Js获取file上传控件的文件路径总结
- js如何获取file控件的完整路径
- 使用js获取input file的绝对路径预览图片C:\fakepath\问题
- IE7,IE8,上传文件控件input file和asp.net FileUpload控件无法获取完整路径的解决办法
- js如何获取file控件的完整路径具体实现代码
- js如何获取file控件的完整路径具体实现代码
- JS+file控件实现图片的上传和预览
- 关于在.net中预览上传控件中路径的图片的方法
- 关于firefox获取不到HTML标签的file控件的完整路径解决方案
- js 获取上传图片 全路径,支持ie,firefox
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- 上传图片预览JS脚本 Input file图片预览的实现示例
- html,图片上传预览,input file获取文件等相关操作
- 关于File控件上传图片,java代码获取图片宽高
- js获取input file完整路径的方法
- 通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
- js获取input file完整路径的方法
- js获取上传图片全路径,支持ie,firefox
- 上传图片预览JS脚本 Input file图片预览的实现示例