项目场景:
功能作用:
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 上传文件限制参数内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
您可能感兴趣的文章:
- JavaScript中常用的数组操作方法
- 深入浅出探究JavaScript中的async与await
- JavaScript实现经典贪吃蛇游戏
- Javascript基础知识中关于内置对象的知识
- JavaScript 运行机制详解再浅谈Event Loop
- Python 协程与 JavaScript 协程的对比
- javascript实现鼠标拖尾特效
- JavaScript实现简单拖拽效果
- JavaScript 数组去重详解
- JavaScript实现飞机大战游戏
- JavaScript setinterval延迟一秒解决方案
- 简单谈谈JavaScript变量提升
- 深入理解JavaScript的事件执行机制
- 8个工程必备的JavaScript代码片段
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)