很久没发文了,今天有时间就写一下吧。
关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成base64数据后,再进行上传。普遍的方法是直接写在上传按钮的触发方法里面,但是对于大型的项目而言,这必然是会重复着同一段代码,使得代码臃肿繁重,这样也不利于平台的优化以及后续的维护,于是,我便封装了一个小小的判断上传文件的类型,图片类型的简便方法,这样不紧节省了重复的劳动力,而且还可以更好的优化项目,提高性能,代码如下:
/* Type: 该值为类型数组,例如:["gif","jpeg","jpg","png"] Size: 该值为数值,限制大小(单位M) fileID: 需要验证的文件ID clackFn:回调函数 使用:TypeSize(["gif","jpeg","jpg","png"],20,"id",function(){ //回调函数内容 }); */ function TypeSize(Type,Size,fileID,clackFn){ var file = document.getElementById(fileID); var size = 1024*1024*Size; var arr = Type; var fileContentType = file.value.match(/^(.*)(\.)(.{1,8})$/)[3]; //文件类型 if (file.files && file.files[0]){ var f_size = file.files[0].size; //文件大小 if(arr.join(‘,‘).toLowerCase().indexOf(fileContentType.toLowerCase()) != -1){ //检索上传的文件类型是不是在允许的arr数组之内 if(f_size > size){ GlobalTip.WarningTipBox("文件太大,请重新上传",‘确定‘); file.value=""; return false; }else { clackFn(); } } else { GlobalTip.WarningTipBox("文件格式不匹配,请重新上传",‘确定‘); } } else { //兼容IE GlobalTip.WarningTipBox(‘请切到高级浏览器,再进行图片上传‘,‘确定‘); } }
谢谢阅读,如果能帮到您,请帮忙顶一个,当然喜欢的可以收藏一下,谢谢!~( ̄▽ ̄~)(~ ̄▽ ̄)~
注:转发请注明出处
时间: 2024-10-18 21:13:46