js 判断上传文件大小及格式代码
我们在做文件上传时,为了实现异步上传的效果,一般会选择采用iframe的形式来进行文件的上传,但我们不能像ajax那样对服务端返回的数据进行处理,从而来进行文件大小以及文件样式的判断,所以我们一般也会想到使用js对上传的文件大小以及格式进行初步的判断,在服务端再进行一次判断(防止浏览器拒绝执行脚本文件)。
以下提供一种方法用js判断文件大小。
var url = window.location.href, type = url.substr(url.lastIndexOf('/')+1); // console.log(type); var allowType = { ".bmp":1, ".png":1, ".jpeg":1, ".jpg":1, ".gif":1, ".mp3":2, ".wma":2, ".wav":2, ".amr":2, ".rm":3, ".rmvb":3, ".wmv":3, ".avi":3, ".mpg":3, ".mpeg":3, ".mp4":3 }; var allowSize = {1:2097152, 2:5242880, 3:20971520}; var errMsg = { "0" : '图片格式不正确<br/>' + '音频格式不正确<br/>' + '视频格式不正确<br/>', "1" : ‘图片格式不正确', "2" : '音频格式不正确', "3" : '视频格式不正确' }; var errSizeMsg = { '1':'图片文件小于2M', '2':'音频文件小于5M', '3':'视频文件小于20M', } function checkFileType(filename, type){ var ext = filename.substr(filename.lastIndexOf(".")).toLowerCase(), res = allowType[ext]; if (type == 0) { return !!res; } else { return type == res; } } function checkFileSize(target, size){ var isIE = /msie/i.test(navigator.userAgent) && !window.opera; var fileSize = 0; if (isIE && !target.files) { var filePath = target.value; var fileSystem = new ActiveXObject("Scripting.FileSystemObject"); var file = fileSystem.GetFile (filePath); fileSize = file.Size; } else { fileSize = target.files[0].size; } // var fsize = fileSize / 1024*1024; if(parseInt(fsize) >= parseInt(size)){ return false; }else{ return true; } } function upload(obj){ var filename = jQuery.trim(jQuery('#uploadFile').val()); if (!filename || filename == ""){ // 提交前的再次检测 alert('选择需要上传的文件'); return false; } if (!checkFileType(filename, type)){ alert('文件格式不正确'); return false; } var ext = filename.substr(filename.lastIndexOf(".")).toLowerCase(); var res = allowType[ext]; if(!checkFileSize(obj,allowSize[res])){ alert(errSizeMsg[res]); return false; } //其他处理 } //uploadFile为上传控件的id,obj为上传控件的本身(this)
最新发现的一段代码也比较不错
js 上传之后去除onclick 事件 判断上传格式
移除 onclick事件 $("#enclosure").removeAttr("onclick"); function changeImg() { debugger; var file = document.getElementById("file"); var img = file.files[0]; file.value = ''; if (img) { // var base64 = blobToDataURL(img, function(base64Url) { // enclosure.text = base64Url; // }) var type = img.name.substr((img.name.lastIndexOf(".") + 1));//文件后缀 console.log(pdtype(type)); if (pdtype(type) == -1) { alert('文件格式错误请重新上传!'); return; } blobToDataURL(img); } // Xrm.Utility.showProgressIndicator("处理中") } //上传多格式判断 function pdtype(ext) { return ['png', 'pdf', 'jpg', 'doc', 'docx', 'xls', 'xlsx'].indexOf(ext.toLowerCase()); }
到此这篇关于js 判断上传文件大小及格式代码的文章就介绍到这了,更多相关判断上传文件大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
这篇文章主要介绍了Javascript面向对象程序设计工厂模式,结合实例形式分析了《javascript设计模式》中Javascript面向对象工厂模式相关概念、原理、用法及操作注意事项,需要的朋友可以参考下2020-04-04浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
下面小编就为大家带来一篇浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-10-10
最新评论