使用按钮选择本地文件

使用按钮选择本地文件

方法一:

 function Jsopen()
			 {
			  var inputObj=document.createElement('input')
          inputObj.setAttribute('id','_ef');
          inputObj.setAttribute('type','file');
          inputObj.setAttribute("style",'visibility:hidden');
          document.body.appendChild(inputObj);
          inputObj.click();
          inputObj.value ;
       
          }

这在IE7及以前的IE浏览器版本上都没有问题,但是到IE8上面,就不行了,在IE8中你只会获取到这样的路径:"C:\fakepath\xxx”,其中xxx是你的文件名。

这是怎么回事呢?

原来,IE8出于安全性的考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。

但是我们就是想要获取真实的本地文件路径怎么办呢?

你可以通过设置浏览器安全选项得到真实路径:

Internet选项 -> 安全 -> 自定义级别 -> 将本地文件上载至服务器时包含本地目录路径 -> 选“启动” -> 确定

但是,作为开发者,我们不能指望客户去这么做,所以我们必须通过代码解决这个问题。

例如我的上传文件控件的HTML代码是:

<input id="file_upl" type="file" />

那么在JS代码中我就可以这样来获取真实的文件路径:

var file_upl = document.getElementById('file_upl');
file_upl.select();

var realpath = document.selection.createRange().text;


方法二:这种可以筛选文件类型
  function MyFuction()
{
	var fd = new ActiveXObject("MSComDlg.CommonDialog");
        fd.Filter = "Word文档|*.doc*|PwoerPoint课件|*.ppt*";
		//Filter = "*.ppt|*.pptx"; //過濾文件類型,現在就只能存成.xml的文件了
        fd.FilterIndex = 1;
        fd.MaxFileSize = 128;
        fd.ShowOpen();//這個是儲存的對話框,如果是需要打開的話,就要用fd.ShowOpen();
	

	}

文件扩展名截取

function getFileExt(CurrentFilename)
{var index1 = CurrentFilename.lastIndexOf(".");
      if ( index1 != -1) { 
        var index2 = CurrentFilename.length;
     return CurrentFilename.substring(index1+1, index2);
      }
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值