JAVASCRIPT
VUE
REACT
NODE
ES6
TYPESCRIPT

Js上传文件获取文件数据

2021. 07. 28    

js上传文件获取文件数据

<input type="file" id='up' oninput="test('up')"/>
<input type=button value="测试" onClick="test('up')" />
<script>
    function test(id) {
		let fup = document.getElementById(id);
		let fileInfo = fup.files[0]
		console.log("本地文件路径:" + fup.value)
		console.log("文件名称:" + fileInfo.name)
		console.log("文件上次修改时间:" + dateFormat(fileInfo.lastModifiedDate, 'yyyy-MM-dd HH:mm:ss'))
		console.log("文件大小:" + fileSize(fileInfo.size))
		console.log("文件类型:" + fileType(fileInfo.type))
		// console.log(fileInfo)
	}
	function fileType(str) {
		return str.match(/(\S*)\//)[1]

		// js截取两个字符串  --之间--  的内容:
		// var str = "aaabbbcccdddeeefff";
		// str = str.match(/aaa(\S*)fff/)[1];
		// alert(str);//结果bbbcccdddeee


		// js截取某个字符串  --前面--  的内容:
		// var str = "aaabbbcccdddeeefff";
		// tr = str.match(/(\S*)fff/)[1];
		// alert(str);//结果aaabbbcccddd


		// js截取某个字符串  --后面--  的内容:
		// var str = "aaabbbcccdddeeefff";
		// str = str.match(/aaa(\S*)/)[1];
		// alert(str);//结果bbbcccdddeeefff
	}
	function fileSize(num) {
		let u = { 0: 'B', 1: 'KB', 2: 'MB', 3: 'GB' }
		let str = ''
		for (let index = 1; index < 5; index++) {
			let count = (num / Math.pow(1024, index)).toFixed(1)
			if (Math.floor(count) > 0) {
				str = count + u[index]
			}
		}
		return str
	}
	function dateFormat(date, format) {
		date = new Date(date);
		date.setHours(date.getHours() - 14);
		var o = {
			'M+': date.getMonth() + 1, //month
			'd+': date.getDate(), //day
			'H+': date.getHours(), //hour
			'm+': date.getMinutes(), //minute
			's+': date.getSeconds(), //second
			'q+': Math.floor((date.getMonth() + 3) / 3), //quarter
			'S': date.getMilliseconds() //millisecond
		};

		if (/(y+)/.test(format))
			format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
		for (var k in o)
			if (new RegExp('(' + k + ')').test(format)) {
				format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
			}
		return format;
	}
</script>