上传图片文件获取文件类型,大小及尺寸
input有一种类型是file,可以上传文件,input的属性有以下几种:
accept:表示可以选择的文件类型,多个类型就用英文的逗号隔开,是字符串类型;
multiple:是否可以选择多个文件,多个文件时其值value是选择的第一个文件的虚拟路径;
例如:上传一个png,jpg,jpeg的图片,可以选择多个文件同时上传;
<input type="file" multiple="multiple" accept="image/png,image/jpg,image/jpeg" onChange="handleFile" ref="fileBtn">上传logo</input>
js:
handleFile(e) {
const file = e.target.files[0];
console.log(file);
}
files是所选择的一个或多个文件的数组,该数组下有以下几个属性:
lastModified:上传文件的时间戳,
lastModifiedDate:上传文件的日期时间,
name:上传文件的文件名,
size:上传文件的文件大小(字节数,需除以1024转换为k单位),
type:上传文件的文件类型,
webkitRelativePath:上传文件的文件路径;
如图所示:
这时,我们就可以获取到上传文件的类型type和大小size,
const size = file.size; // 这里获取的是字节数,需除以1024才转化为k单位
const type = file.type;
const name = file.name;
如何获取图片文件的尺寸大小
需要通过实例化Image对象,加载src来获取图片真实的宽高,具体看下面的代码讲解
handleFile(e) {
const file = e.target.files[0];
// 先实例化一个Image对象出来
const img = new Image();
// 加载src
const _URL = window.URL || window.webkitURL;
img.src = _URL.createObjectURL(file);
// 在图片加载完成之后获取宽高即可
img.onload = () => {
const width = img.width;
const height = img.height;
}
}