您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

JavaScript 上传文件限制参数案例详解

51自学网 2022-05-02 21:31:43
  javascript

项目场景:

1,上传文件限制

功能作用:

1,防止前端操作上传异常文件
2,限制符合的规则,优化展示模型

功能实现:

1,获取file实例
2,执行校验规则方法

代码如下:

//大小限制checkFileSize(file, rules) {    return new Promise((resolve, reject) => {        file.size / 1024 / 1024 > rules ? reject() : resolve()    }).then(        () => {          return true        },        () => {			//操作提示          return Promise.reject()        }    )},//上传格式限制checkFileType(file, rules) {    return new Promise((resolve, reject) => {        rules && rules.includes(file.type) ? resolve() : reject()    }).then(      () => {          return true      },      () => {          //操作提示          return Promise.reject()      }    )},//宽高比例(图片)checkImageWH(file, rules) {    const _this = this    return new Promise((resolve, reject) => {    	//读取文件        const filereader = new FileReader()        filereader.readAsDataURL(file)        filereader.onload = e => {          const src = e.target.result          const image = new Image()          image.onload = function() {			//分析数据,对数据进行判断 符合规则 resolve()		}          image.onerror = reject          image.src = src        }    }).then(        () => {          return true        },        () => {          //操作提示          return Promise.reject()        }    )},//宽高比例(视频)checkVideoWH(file, rules) {      return new Promise(function(resolve, reject) {        var url = URL.createObjectURL(file)        var video = document.createElement('video')        video.onloadedmetadata = evt => {          URL.revokeObjectURL(url)          //分析数据,对数据进行判断 符合规则 resolve()        }        video.src = url        video.load() // fetches metadata      }).then(        () => {          return true        },        () => {          //操作提示          return Promise.reject()        }      )}

实际调用

//获取file实例Screen(){	//获取权限规则    const { filesSize, filesFormat, fileLimit} = this    // 文件大小、文件类型、图片/视频宽高限制    //传参判断    const isFileSize = filesSize ? await this.checkFileSize(file, filesSize) : true    const isFileType = filesFormat ? await this.checkFileType(file, filesFormat) : true	//图片素材       if (fileLimit && fileLimit.type * 1 === 1) {      const isImageLimit = fileLimit? await this.checkImageWH(file, fileLimit) : true      //输出结果      return isFileSize && isFileType && isImageLimit    } else if (fileLimit&& fileLimit.type * 1 === 2) {    //视频素材      const isVideoLimit = fileLimit? await this.checkVideoWH(file, fileLimit) : true      //输出结果      return isFileSize && isFileType && isVideoLimit    } else {    //不限制    //输出结果      return isFileSize && isFileType    }}

内容总结:

1,获取实例
2,执行方法。

到此这篇关于JavaScript 上传文件限制参数案例详解的文章就介绍到这了,更多相关js 上传文件限制参数内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


基于Typescript与Axios的接口请求管理详解
vue之bus总线简单使用讲解
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1