使用按钮选择本地文件
方法一:
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);
}
}