获取 input file 文件域的路径

来源:互联网 发布:太阁立志传6比5优化 编辑:程序博客网 时间:2024/06/08 04:37
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>获取input file的路径</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><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(obj){ //判断浏览器   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 = obj.value;   }else if(Sys.ie>="7.0"){     //ie7,ie8         obj.select();    //ie9     obj.blur();    //如果用了iframe框架,就将obj.blur()替换成下面这句话    // window.parent.document.body.focus();     file_url = document.selection.createRange().text;     alert("file_url:"+file_url);     alert(file_url);   }else if(Sys.firefox){     //fx     //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串     file_url = readFileFirefox(obj);   }else if(Sys.chrome){     file_url = obj.value;   }   document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url; } </script></head><body><div id="text" style="color:#f00;"></div>   <input type="file" id="file" onchange="getvl(this)" /></body></html>



//如果用了iframe框架,就将obj.blur()替换成下面这句话
    // window.parent.document.body.focus();

原创粉丝点击