js如何获取file控件的完整路径具体实现代码_javascript技巧

今天做一个项目,需要隐藏input file然后获取它的值,但连jquery都无法获取它的值

复制代码 代码如下:

<script type="text/javascript">
//FX获取文件路径方法
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');
return;
}
var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
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;
}
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"){
//ie5.5,ie6.0
file_url = document.getElementById("file").value;
}else if(Sys.ie>="7.0"){
//ie7,ie8
var file = document.getElementById("file");
file.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
//fx
//file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
file_url = readFileFirefox(document.getElementById("file"));
}
//alert(file_url);
document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;
}
</script>
<h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1>
<div id="text" style="color:#f00;"></div>
<input type="file" id="file" />
<input name="" type="button" value="获取" onClick="getvl();">

时间: 2024-12-21 22:21:58

js如何获取file控件的完整路径具体实现代码_javascript技巧的相关文章

js如何获取file控件的完整路径

 <script type="text/javascript"> //FX获取文件路径方法 function readFileFirefox(fileBrowser) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert('无法访问本地文件,由于浏览器安全设置.为了克服这一点,请按照下列步骤操作:(1)在地

js中获取file控件的完整路径实例

document.getElementById(""my-file"").files办法用于获取到用户所选择的文件的凑集,一般景象下都是选择单一文件(貌似FireFox如许做是支撑多文件选择的,不过没有试过,读者可以本身去测验测验),item数组可以获得此中的某一个文件,然后我们就可以应用 nsIDOMFile所供给的属性和办法了.它包含2个属性和3个办法: fileName:用于获取到用户所选文件的名称,这和直接取value值所获得的成果一样. fileSize:

JS控件ASP.NET的treeview控件全选或者取消(示例代码)_javascript技巧

复制代码 代码如下: <script language="javascript">   /*   函数名称:CheckNode(currentNode).ParentNode(currentNode).ChildNode(currentNode)   函数功能:实现带checkbox的treeview中   1.选中父结点其子结点也全部选中   2.取消全部子结点的选择后,父结点的选择也随之取消   使用方法:1.在<head></head>中间添加

JavaScript监测ActiveX控件是否已经安装过的代码_javascript技巧

function detectPlugin(CLSID,functionName) { var pluginDiv = document.createElement("<div id=\"pluginDiv\" style=\"display:none\"></div>") document.body.insertBefore(pluginDiv); pluginDiv.innerHTML = '<object id

jQuery获取file控件中图片的宽高与大小_jquery

问题 如何判断input file表单里上传的图片的宽高和大小呢? 解决方案 这个时候图片还没真正上传,也不是在页面上展示,不能使用$("#id").width(),$("#id").height()这种方式. 在Stack Overflow找到一个方法获取input file图片文件的宽高: var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { v

用.Net的File控件上传文件的解决方案_实用技巧

在遍历了csdn中所有关于上传大文件的帖子以后,写了这篇垃圾.(:-))  上传大文件,有好几种方法:  1.思归的HttpWorkerRequest方法,太难,看不懂:-( 2.利用第三方的控件 AspNetUpload 要钱!!算了,咱还是喜欢免费的. 3.修改web.config文件,但是不能捕获错误. 4.通过ftp的方式上传.服务器需要提供ftp服务.  没辙,只好选第三种方式,谁让咱太蠢了呢!(太蠢了,没有关系,要多吃鱼,听说吃鱼能聪明点.)  那就仔细专研第三种方式吧!  修改We

无法获取File控件全路径

问题描述 对于<inputtype="file"name="path">,始终无法获取到他的全路径,例如,我上传的文件时:c:test.txt,那么我拿到的始终是test.txt.在网上找资料,说有可能是浏览器问题,但是我测试了几个浏览器都是同样的问题.而我同事跟我一样的写法,却可以拿到c:test.txt.请问这是为什么?难道是传说中的人品问题?在线等候大侠的回复. 解决方案 解决方案二:恩,我也遇到过相同的问题,确实有时候拿到的路径不完整,解决方案三

如何在JS中获取验证控件ValidationSummary的值

问题描述 我想判断ValidationSummary1这个控件是否被点击确定,,和显示选中的值 解决方案 解决方案二:???没看明白!解决方案三:其实做验证用javascript比较好.ValidationSummary,这个东西很少有人使用的.解决方案四:<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>无标题页</title>&

浅析js设置控件的readonly与enabled属性问题_javascript技巧

如何用js设置控件的readonly和enabled属性?  我试过这样设置不行,text1为<input type=text  id=text1>   text1.readonly=true;       和   text1.enabled=true;   都不行,为什么???   答案: disabled=flase;     //小写readOnly=true;     //大写