• JS获取fileupload文件全路径


    来自:http://hi.baidu.com/libos88/item/c61ab8bae472afe34ec7fdfb

    最近在写个小网站,用到了fileupload控件来上传文件。因为程序的某些需要,要获取上传文件的本地路径,在CS代码中使用的是 fileupload1.PostedFile.FileName,结果发现得出来的只是文件名,不包含路径,记得以前确实是用这样的方法取得过路径的。
    于 是上网搜索了下,原来是因为高版本的浏览器设定为了安全起见,已经不会显示文件路径。只有想办法用JS来获取路径了,测试了一下后发现。单独只是使用 document.getElementById("fileupload1").value,在IE6里可以获取全路径,在IE7,IE8及火狐里都是 只能获得文件名。
    后来在网上找到了解决办法,IE7,IE8可以用如下代码获取文件路径
     程序代码
    //判断浏览器类型
    var isIE = (document.all) ? true : false;
    var isIE7 = isIE && (navigator.userAgent.indexOf('MSIE 7.0') != -1); 
    var isIE8 = isIE && (navigator.userAgent.indexOf('MSIE 8.0') != -1); 

    var file=document.getElementById("fileupload1"); 
    if(isIE7 || isIE8)

    file.select();
    var path=document.selection.createRange().text; 
    document.selection.empty(); 
    }
    但是在火狐下还是没办法获取文件路径,看到网上有人说用getAsDataURL()方法可以获取路径。我测试了一下,用这个方法确实是可以获得路径,但是些路径是被加密过的。于是继续寻找其他方法。。。
    火狐下获取上传文件路径的方法,需要先修改设置。在地址栏输入about:config,然后修改signed.applets.codebase_principal_support的键值,将值修改为true。然后再使用如下代码,就可以获得文件路径。


    程序代码try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

    catch (e) {
    alert('请更改浏览器设置');
    return;
    }

    var fname = document.getElementById("fileupload1").value; 
    var file = Components.classes["@mozilla.org/file/local;1"]
    .createInstance(Components.interfaces.nsILocalFile);
    try {
    // Back slashes for windows
    file.initWithPath( fname.replace(///g, "\\") );
    }
    catch(e) {
    if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
    alert('无法加载文件');
    return;
    }

    alert(file.path);  //取得文件路径 

    运行以上代码时,浏览器会弹出警告,选择”是“之后,即可获得路径。

    其它方法:

    http://www.cnblogs.com/xiaopin/archive/2012/05/23/2514664.html

    国外:http://weblogs.asp.net/ashicmahtab/archive/2009/05/20/fileupload-control-doesn-t-give-full-path-help.aspx

  • 相关阅读:
    6th Alpha阶段的postmortem报告
    两种open()函数
    文件操作权限第一位的0是什么意思
    vi的查找与替换
    浅析Linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
    Linux命令总结:file
    Linux下/boot目录
    英语单词简记
    Linux下grep命令
    Linux下find命令
  • 原文地址:https://www.cnblogs.com/dianyitongxiao/p/3253021.html
Copyright © 2020-2023  润新知