element upload限制上传图片尺寸、大小、比例


//上传图片前的图片验证回调
beforeAvatarUpload(file) {
    //图片格式
	const isJPG = file.type === 'image/jpg' || file.type === 'image/png';
    //图片大小
	const isLt2M = file.size / 1024 / 1024 < 2;
	if (!isJPG) {
		this.$message.error('上传图片只能为jpg或png格式');
	}
	if (!isLt2M) {
		this.$message.error('上传图片大小不能超过2MB');
	}
	const _this = this;
	const isSize = new Promise(function(resolve, reject) {
		const img = new Image();
		const _URL = window.URL || window.webkitURl;
		img.onload = function() {
			file.width = img.width;//图片宽度
			file.height = img.height;//图片高度
			const valid = img.width === 1920 && img.height === 600;//上传图片尺寸判定
			valid ? resolve() : reject(new Error('error'));
		};
		img.src = _URL.createObjectURL(file);
	}).then(
		() => {return file;},
		() => {
				_this.$message.error('上传图片尺寸必须为1920*600');
				return Promise.reject(new Error('error'));
			  }
	      );
	      return isJPG && isLt2M && isSize;
}
posted @ 2020-08-19 11:30  小蓉儿  阅读(1015)  评论(0)    收藏  举报