js获取文件域完整路径
来源:互联网 发布:搜索引擎seo基本理念 编辑:程序博客网 时间:2024/05/01 02:50
<!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>
<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>
- js获取文件域完整路径
- js获取文件域完整路径
- 关于js获取上传文件的完整路径问题?
- Delphi获取完整文件路径的各部分
- mac下获取文件的完整路径
- JS文件中获取路径
- js动态获取文件路径
- JS获取当前网址,JS获取当前域名URL ,JS获取网站完整路径页面地址
- js中获取file控件的完整路径实例
- Delphi获取完整路径
- java获取完整路径
- 完整的获取当前jsp文件路径的语句
- 完整的获取当前jsp文件路径的语句
- 火狐IE下获取完整文件路径名的方法
- FileUpload上传文件时,为何不能获取到完整路径
- FileUpload上传文件时,为何不能获取到完整路径
- MFC获取鼠标拖入文件的完整路径名
- 获取文件完整路径并存储(拖放操作)
- android 的线程模型和AsyncTask
- Spring MVC 思想的讲解
- Three Rules for Effective Exception Handling
- Activity跳转页面切换漂亮效果(转)
- android调用第三方库——第二篇——编写库android程序直接调用第三方库libhello.so
- js获取文件域完整路径
- 从零开始配置mutt-fetchmail-procmail-msmtp
- 提高你的Java代码质量吧:优先使用整形池
- 第一个Objective-C 程序
- linux系统的性能问题排除分析
- android 进程和线程
- 2013-07-24 Chapter2 UIApplication、UIWindow、 UIViewController、 UIView
- 使用PostThreadMessage在Win32线程间传递消息
- HTML标签内的连接、文本、垂直居中 兼容绝大部分浏览器