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

 更新时间:2021年09月13日 14:30:45   作者:箴水_Protaos  
这篇文章主要介绍了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 上传文件限制参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Whatever:hover 无需javascript让IE支持丰富伪类

    Whatever:hover 无需javascript让IE支持丰富伪类

    绝大部分现代浏览器支持 css 中的 :hover 伪类选择器,可以用于所有 html 元素。
    2010-06-06
  • JSON简介以及用法汇总

    JSON简介以及用法汇总

    JSON(JavaScript Object Notation)即JavaScript对象表示法,是一种轻量级的数据交换格式。它非常便于编程人员对数据的处理,也便于机器对数据的解析和生成,应用非常广泛
    2016-02-02
  • D3.js实现柱状图的方法详解

    D3.js实现柱状图的方法详解

    相信大家都知道数据可视化就是借助图形化的手段把生硬的数据生动化,以此来展示出数据想要表达的信息,而图表是最通常的一种数据可视化手段。可全靠自己纯手动编写各种图表实在是让人头疼,各种计算各种烦。现在就为大家介绍如何用D3.js来实现柱状图。
    2016-09-09
  • iframe src为图片时的高度自适应的代码

    iframe src为图片时的高度自适应的代码

    iframe src为图片时的高度自适应的代码...
    2007-10-10
  • js中调用微信的扫描二维码功能的实现代码

    js中调用微信的扫描二维码功能的实现代码

    这篇文章主要介绍了在js中调用微信的扫描二维码功能的实现代码,本文给大家分享了注意事项及常见问题分析,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • js异步之async和await实现同步写法

    js异步之async和await实现同步写法

    本文主要介绍了js异步之async和await实现同步写法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • JS中的异常处理方法分享

    JS中的异常处理方法分享

    我们在编写js过程中,难免会遇到一些代码错误问题,需要找出来,有些时候怕因为js问题导致用户体验差,这里给出一些解决方法
    2013-12-12
  • 在图片上显示左右箭头类似翻页的代码

    在图片上显示左右箭头类似翻页的代码

    使用JS实现在图片上显示左右箭头的翻页代码.实例使用了javascript的onmousemove 事件,onmousemove 事件会在鼠标指针移动时发生,感兴趣的你可以参考下本文或许对你有所帮助
    2013-03-03
  • 一文详解preact的高性能状态管理Signals

    一文详解preact的高性能状态管理Signals

    这篇文章主要介绍了一文详解preact的高性能状态管理Signals,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的朋友可以参考一下
    2022-09-09
  • js实现select二级联动下拉菜单

    js实现select二级联动下拉菜单

    这个是简单也是最基本的下拉框联动的示例,这个示例主要针对那些只有二级联动,且第一级是固定的选项,第二级的内容也比较简单,不刷新的联动,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论