上传图片文件获取文件类型,大小及尺寸

1,455 阅读1分钟

上传图片文件获取文件类型,大小及尺寸

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;
    }
}