在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>
...全文
369 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2015-04-13
  • 打赏
  • 举报
回复
用 js 去拿客户端本地真实路径?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧