您的位置:首页 > Web前端 > JavaScript

js获取文件域完整路径

2013-07-24 13:36 211 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JS获取文件域完整路径的方法,兼容不同浏览器</title>

<script>
//ff获取文件路径方法

function getPathFromFF(obj) {
try {
netscape.security.PrivilegeManager
.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:\n'
+ '(1)在地址栏输入"about:config";\n(2)右键点击并选择 New->Boolean;\n'
+ '(3)输入"signed.applets.codebase_principal_support"(不含引号)作为一个新的首选项的名称;\n'
+ '(4)点击OK并试着重新加载文件。');
return;
}
var fileName = obj.value; // 这一步就能得到客户端完整路径
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("无法加载文件" + fileName + ":不允许使用相对路径,请提供一个绝对路径的文件。");
return;
}
if (file.exists() == false) {
alert("没找到文件" + fileName);
return;
}
return {
path : file.path,
size : obj.files[0].size
};

}

// ie获取文件路径方法

function getPathFromIE(obj, version) {
try {
if (version <= "6.0") {// ie5.5,ie6.0
path = obj.value;
} else if (version >= "7.0") {// ie7,ie8
obj.select();
path = document.selection.createRange().text;
document.selection.empty();
}
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile(path);
return {
path : path,
size : file.size
};
} catch (e) {
alert(e.message);
return;
}

}

// 根据不同浏览器获取路径

function getPath(obj) {
// 判断浏览器
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] : 0;

if (Sys.ie) {// ie
return getPathFromIE(obj, Sys.ie);
} else if (Sys.firefox) {// ff
// path = obj.files[0].getAsDataURL();//获取的路径为ff识别的加密字符串
return getPathFromFF(obj);
} else {
alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")");
return;
}

}

</script>

<script type="text/javascript">
function showPath(obj) {
var fileInfo = getPath(obj);
if (fileInfo){
alert(fileInfo.path + ":" + fileInfo.size);
}
}
</script>
</head>
<body>
<input type="file" onchange="showPath(this);" />
</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: