js判断文件的格式和大小

在写页面中常常遇到要上传文件,那么怎么判断文件的格式和大小是否是所需要的呢。
下面这串代码希望对大家有帮助。

<script type="text/javascript">
    // 判断图片大小和格式
    function getPhotoSize(obj) {
        //获取上传文件的后缀名
        photoExt = obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
        if (photoExt != '.jpg' && photoExt != '.png' && photoExt != '.jpeg') {
    //因为我这是上传图片文件所以if里判断的是.jpg的后缀要是上传文本改为.txt依此类推
            alert("文件格式错误!");
            var nf = obj.cloneNode(true);//复制文件格式
            nf.value = '';//讲nf设为空值
            obj.parentNode.replaceChild(nf, obj);//替换源文件使得该文件变为空值
            return false;
        }
        var fileSize = 0;
        //判断浏览器并且是否opera
        var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
        if (isIE && !obj.files) {
            var filePath = obj.value;
            //读取本地信息
            var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
            var file = fileSystem.GetFile(filePath);
            fileSize = file.Size;
        } else {
            fileSize = obj.files[0].size;
        }
        //转化为Int值
        fileSize = Math.round(fileSize / 1024 * 100) / 100; 
        if (fileSize > 2048) {
            alert("不接受超过2m的图片!");
            return false;
        }
    }
</script>

之后在页面里面应用就好了

<input required="required" type="file" name="file1" 
accept="image/*" onchange="getPhotoSize(this)" size=40 "/>

其中,var fileSystem = new ActiveXObject(“Scripting.FileSystemObject”);
是启用并返回Automation对象的引用:
Obj = new ActiveXObject( servername.typename[, location]);

  • Obj是变量名。
  • servername是提供该对象应用的名称。
  • typename是要创建的对象的类型或类。
  • [, location]是创建该对象的网络服务器的名称。(该项可不写)

该处引用自其他文章,原文章地址为:https://www.jb51.net/article/48538.htm


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值