js获取ie上传文件路径后缀大小文件夹_JS获取IE上传文件路径、后缀、大小、文件名代码

更新时间:2018-03-27    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

兼容ie7,8获取上传文件路径

 代码如下

function validateFileSize(id, maxsize) {
            var btnsave = document.getElementById("Button2");
            btnsave.disabled = false;
            var filepath = "";
            var fileupload = document.getElementById(id);
            if (fileupload.value.length < 5) { alert("请选择文件!"); return; }
            var agent = window.navigator.userAgent;
            if (document.all) {
                var isIE7 = agent.indexOf("MSIE 7.0") != -1;
                var isIE8 = agent.indexOf("MSIE 8.0") != -1;
                //IE7和IE8获得文件路径
                if (isIE7 || isIE8) {
                    fileupload.select();
                    filepath = document.selection.createRange().text;
                }
                //IE6获得文件路径
                else
                { filepath = file.value; }
                //PageMethods.ValidateFile(filepath, maxsize, ieCallBack);
                alert(filepath);
            }
            if (agent.indexOf("Firefox") >= 1) {
                alert("FF");
                alert(getValue());
                return false;
                if (fileupload.files) {
                    var size = fileupload.files[0].fileSize;
                    if (size > parseInt(maxsize)) {
                        fileupload.parentNode.innerHTML = " ";
                        alert("文件超过大小!");
                    }
                    else { alert("文件上传成功!"); }
                }
            }
        }


 

再补充一些关于文件上传获取的代码(上传文件路径,后缀,大小,文件名)

 代码如下

/**
*函数描述:获取input type=file的图像全路径
* @obj input type=file的对象
**/
function getFullPath(obj)
{
if(obj)
{
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
if(obj.files)
{
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}

 

 
 

#判断IE还是Firefox

function getFullPath(obj)

{

if(obj)

{

//ie

if (window.navigator.userAgent.indexOf("MSIE")>=1)

{

obj.select();

return document.selection.createRange().text;

}

//firefox

else if(window.navigator.userAgent.indexOf("Firefox")>=1)

{

if(obj.files)

{

return obj.files.item(0).getAsDataURL();

}

return obj.value;

}

return obj.value;

}

}

 

 

 

#判断后缀名

function yulan(){

var filePath =getFullPath(document.getElementById("UpFile"));

var fileText =filePath.substring(filePath.lastIndexOf("."),filePath.length);

var fileName =fileText.toLowerCase();

if ((fileName!=".jpg")&&(fileName!=".gif")&&(fileName!=".jpeg")&&(fileName!=".png")&&(fileName!=".bmp"))

{

alert("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传,谢谢 !");

document.form1.UpFile.focus();

}

else

{

document.getElementById("preview").innerHTML="";

}

}

 

 

#判断文件大小

var Sys = {};

if(navigator.userAgent.indexOf("MSIE")>0) {

Sys.ie=true;

}

if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){

Sys.firefox=true;

}

 

var maxLength = 5*1024*1024;

 

function checkFileChange(obj) {

var filesize = 0;

if(Sys.firefox){

filesize = obj.files[0].fileSize;

}else if(Sys.ie){

var filePath = obj.value;

var image=new Image();

image.src=filePath;

filesize=image.fileSize;

}

alert(filesize);

}

可能有些朋友会碰到IE浏览器上传文件时本地路径变成”C:fakepath”的问题


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

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

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

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

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

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

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

 代码如下

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

 代码如下

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

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

如果我们用的是Ext,那么我们会使用Ext.ux.form.FileField组件,假设我们赋给它的id是"file_upl",这时同样会产生上面的问题,解决的办法也是一样,但是我们获取到type为file的input才行,而根据"file_upl"获取到的元素根本不是我们所需要的,Ext是自动生成了一个type为file的input,你可以通过DebugBar或其他类似工具看到这个input,它的id是赋给Ext.ux.form.FileField的id加上"-file"的后缀,也就是"file_upl-file",所以获取真实文件路径的
JS代码就是:

 代码如下

var file_upl = document.getElementById("file_upl-file");
file_upl.select();

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

本文来源:http://www.bbyears.com/wangyezhizuo/40222.html

热门标签

更多>>

本类排行