js在上传图像之前进行预览

上传图像选择input的file类型,根据图像信息,解析出预览image标签的src值。

<div>
	<img id="show" src="#" />
	<input accept="image/*" type='file' id="demo" />
</div>

<script type="text/javascript">
	
	let demo = document.getElementById("demo");
	let show = document.getElementById("show");

	demo.onchange = evt => {
		const [file] = demo.files; // 示例中默认上传一张图像
		console.log(demo.files);
		if (!file) return;
		show.src = URL.createObjectURL(file);
	}
</script>

URL.createObjectURL生成的值类似:blob:null/e060f0f4-cd80-4994-86c9-5ff409aa4bbb。

另外,也可以用读取文件数据的方式,src用base64格式来表示,稍微繁琐些。

替换上方代码onchange中内容:

const [file] = demo.files;
console.log(demo.files);
if (!file) return;

let reader = new FileReader();
reader.readAsDataURL(file); // 读取文件

// 渲染文件
reader.onload = function(arg) {
	show.src = arg.target.result;
}

这时的src格式类似:data:image/png:base64.xxxx。

(版权归cpury.com所有,转载请注明出处。)