<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>图片预览</title>
<style type="text/css">
.global {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
}
.count {
width: 1000px;
height: 300px;
border: 2px solid deepskyblue;
display: flex;
justify-content: space-around;
align-items: center;
}
.count div{
width: 30%;
height: 50%;
border: 1px solid fuchsia;
display: flex;
justify-content: center;
align-items: center;
}
.count div img{
height: 70%;
}
input {
display: block;
}
</style>
</head>
<body>
<div class="global">
<div class="count">
<div>
<input type="file" name="file" id="file">
<img src="" alt="" id="imgs">
</div>
</div>
</div>
<script type="text/javascript">
// 文件类型转换
// File 转 Base64 图片预览
const fileToBase64 = (file, callback) =>{
const reader = new FileReader()
reader.onload = function(evt){
if(typeof callback === 'function') {
callback(evt.target.result)
} else {
console.log("我是base64:", evt.target.result);
}
}
/* readAsDataURL 方法会读取指定的 Blob 或 File 对象
** 读取操作完成的时候,会触发 onload 事件
* result 属性将包含一个data:URL格式的字符串(base64编码)以表示所读取文件的内容。
*/
reader.readAsDataURL(file);
}
//
let _files = document.getElementById('file')
_files.addEventListener('change',function(e){
console.log(e.target.files[0])
let file = e.target.files[0] // file对象
const base64 = fileToBase64(file,base64 => {
let imgs = document.getElementById('imgs')
imgs.src = base64
})
})
</script>
</body>
</html>