在360浏览器中显示本地上传真实路径的方法?
老马啊老马 2015-04-12 08:54:19 下面的代码执行后,选择本地文件后,只能显示c:\fakepath\*路径。
不知道哪位高手,有没有显示真实路径的办法,最好能给出已调试好的代码。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>批量录入excel表格</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<style>
<!--
.opacity {opacity:0;FILTER:Alpha(Opacity=0);}
.text {border: 1px solid #c0c1b3;}
.text.opacity {position:absolute;height:20px;}
.text.file {width:129px!important;width:135px;z-index:100;}
.text.file_btn {height:19px;margin:0 0 -1px 0;width:auto!important;width:60px;background:#f0f0f0;padding:;}
-->
</style>
<script type="text/javascript">
function getPath(obj) {
if(obj){
if (window.navigator.userAgent.indexOf("MSIE")>=1){
obj.select();
return document.selection.createRange().text;
}else if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
if(obj.files){
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
//FX获取文件路径方法
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('无法访问本地文件,由于浏览器安全设置,请用IE浏览器打开。');
return;
}
var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
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"){
file_url = document.getElementById("file").value;
}else if(Sys.ie>="7.0"){
var file = document.getElementById("file");
file.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
file_url = readFileFirefox(document.getElementById("file"));
}else{
var file = document.getElementById("file");
file.select();
file_url = document.selection.createRange().text;
}
document.getElementById("filepath").value = file_url.replace(/\\/g,'/'); //把\转化成/
var files = document.getElementById("filepath").value;
if(files.substr(files.length-4)=="xlsx" || files.substr(files.length-4)==".xls"){
document.frm.action = "import_result.jsp";
document.frm.submit();
}else{
alert("请选择office 2007或 office 2003; 以xlsx(xls)结尾..."+files.url+files.length);
return false;
}
}
</script>
<form action="" method="post" name="frm" onsubmit="getPath();" target="import_result">
数据的批量导入:
<input type="file" name="file" size="20" onchange="document.getElementById('filepath').value=this.value" class="text opacity">
<input name="filepath" id="filepath" value="" class="text"> <input type="button" value="浏览..." class="file_btn">
<input type="button" onclick="getPath();" value="Excel导入" style="height: 4%"/>
</form>
</html>