<script type="text/javascript">
//FX获取文件路径方法
function readFileFirefox(fileBrowser) {
try {
netscapesecurityPrivilegeManagerenablePrivilege("UniversalXPConnect");
}
catch (e) {
alert(无法访问本地文件由于浏览器安全设置为了克服这一点请按照下列步骤操作()在地址栏输入"about:config";() 右键点击并选择 New>Boolean; () 输入"signedappletscodebase_principal_support" (不含引号)作为一个新的首选项的名称;() 点击OK并试着重新加载文件);
return;
}
var fileName=fileBrowservalue; //这一步就能得到客户端完整路径下面的是否判断的太复杂还有下面得到ie的也很复杂
var file = Componentsclasses["@mozillaorg/file/local;"]
createInstance(ComponentsinterfacesnsILocalFile);
try {
// Back slashes for windows
fileinitWithPath( fileNamereplace(///g "") );
}
catch(e) {
if (eresult!=ComponentsresultsNS_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 ( fileexists() == false ) {
alert("File " + fileName + " not found");
return;
}
return filepath;
}
//根据不同浏览器获取路径
function getvl(){
//判断浏览器
var Sys = {};
var ua = navigatoruserAgenttoLowerCase();
var s;
(s = uamatch(/msie ([d]+)/)) ? Sysie = s[] :
(s = uamatch(/firefox/([d]+)/)) ? Sysfirefox = s[] :
(s = uamatch(/chrome/([d]+)/)) ? Syschrome = s[] :
(s = uamatch(/opera([d]+)/)) ? Sysopera = s[] :
(s = uamatch(/version/([d]+)*safari/)) ? Syssafari = s[] : ;
var file_url="";
if(Sysie<=""){
//ieie
file_url = documentgetElementById("file")value;
}else if(Sysie>=""){
//ieie
var file = documentgetElementById("file");
fileselect();
file_url = documentselectioncreateRange()text;
}else if(Sysfirefox){
//fx
//file_url = documentgetElementById("file")files[]getAsDataURL();//获取的路径为FF识别的加密字符串
file_url = readFileFirefox(documentgetElementById("file"));
}
//alert(file_url);
documentgetElementById("text")innerHTML="获取文件域完整路径为"+file_url;
}
</script>
<h>JS获取文件域完整路径的方法兼容不同浏览器</h>
<div id="text" style="color:#f;"></div>
<input type="file" id="file" />
<input name="" type="button" value="获取" onClick="getvl();">