1、<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>
2、<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">
3、//FX获取文件路径方法function readFileFirefox(fileBrowser) {try {netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}
4、catch (e) {alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');return;}
5、var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到足毂忍珩ie的也很复杂。var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);try {// Back slashes for windowsfile.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;}
6、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;
7、(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.0file_url = obj.value;}else if(Sys.ie>="7.0"){//ie7,ie8obj.select();//ie9obj.blur();
8、//如果用了iframe框架,就将obj.blur()替换成下面这句话// widow.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;}
9、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>