firefox中文件上传控件不能获取全路径

最近做项目碰到一问题就是在ie中文件上传控件能获取到文件全路径 ,而在firefox中却只能得到文件名的问题,以前没碰到过,网上查了下,说是firefox的高版本中(3.0以上)考虑到安全问题,并且说是在ie8上也一样。于是网上找来一相应的解决办法,注:以下代码完全是为了记录下相应的解决办法所做的学习笔记

 

		getFilePath: function (fileBrowser) { //fileBrowser 为一个file对象 
		        if (navigator.userAgent.indexOf("MSIE") != -1){fileBrowser.select(); return document.selection.createRange().text;  }
		        else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) return this.getFilePathWithFF(fileBrowser);  
		        else alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")");  
		    },  
		    getFilePathWithFF: function (fileBrowser) {  
		        try {  
		            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");  
		        } catch(e) {  
		            alert('由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 "signed.applets.codebase_principal_support" (忽略引号).');  
		            return;  
		        }  
		        var fileName = fileBrowser.val();  
		        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;  
		        }  
		      
		        return file.path;  
		    }
设置好后:第一次运行 会弹出由于浏览器安全问题 请按照以下设置 [1] 地址栏输入 "about:config" ; [2] 右键 新建 -> 布尔值 ; [3] 输入 "signed.applets.codebase_principal_support" (忽略引号).'提示
根据提示,修改好firefox的设置后,再运行,会弹出一个对话框,点击是就行了,这时你获得的上传路径即为全路径了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值