双鱼座的天蝎

导航

JS获取上传文件的名称、格式、大小

<input id="File1" type="file" onchange="checkFile(this)" />

 

方式一)

function checkFile(o) {
            var fileobj = o.files[0];
            if ( typeof(fileobj) == "undefined"){
                alert("请选择要上传的文件。");
                return false;
            }
            else {
                var fileType = fileobj.type;
                var fileName = fileobj.name;
                var fileSize = fileobj.size / 1024 / 1024;
                var maxSize = 2048;

         var allowType = /^(image\/jpeg|image\/png)$/i; // 检查图片格式
         if (!allowType.test(fileType)) {
            alert("文件格式必须为jpeg或png");
            return false;
         }

if (fileobj.name.indexOf("'") > -1) { alert("名称不能包含以下字符:\\ / : * ? \' \" < > |"); return false; } else if (fileSize > maxSize) { alert("请选择" + maxSize + "MB以内的文件上传。您当前文件大小为:" + fileSize.toFixed(2) + "MB"); return false; } else { $("#xxx").html("<img src='/img/Processing.gif' />");//显示loading图片 return true; } } }

 

方式二)

 

JS:

function checkFile(fileObj)
{
        var max = 4;
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        if(fso.GetFile(fileObj.value).size> max*1024*1024)
        {
            alert("附件不能超过" + max + "MB,请重新上传");
            fileObj.outerHTML = fileObj.outerHTML;
            fileObj.value = "";
        }
        var type = ".doc.wps.pdf";
        if(type.indexOf(fileObj.value.substr(fileObj.value.lastIndexOf(".")).toLowerCase())==-1)
        {
            alert("文件格式必须为:" + type);
            fileObj.outerHTML = fileObj.outerHTML;
            fileObj.value = "";
        }
}

 

如果使用JQuery,请将

fileObj.outerHTML = fileObj.outerHTML;
fileObj.value = "";

如果onchange在JS内加载,需要重新赋新的事件,修改为:

var newObj = fileObj.clone();
newObj.change(function () { checkFile($("#"+newObj.attr("id"))) });
newObj.val("");
fileObj.after(newObj);
fileObj.remove();

如果onchange在HTML标签内写明,则修改为:

fileObj.after(fileObj.clone().val(""));
fileObj.remove();

 

兼容各种浏览器哦~

posted on 2014-02-11 10:12  双鱼座的天蝎  阅读(1979)  评论(0编辑  收藏  举报