实现预览图片
<img id='previewImg'/> <input id='selectImg' type='file'/>
function createObjectURL(file){
//兼容问题
if(window.URL){
return window.URL.createObjectURL(file)
}else if(window.webkitURL){
return window.webkitURL.createObjectURL(file)
}else{
return null
}
}
function createImgUrl(file){
let fileReader = new FileReader()
fileReader.readAsDataURL(file)
fileReader.onload = (e)=>{
return e.target.result
}
}
let previewImg = document.getElementById('previewImg'),selectImg = document.getElementById('selectImg');
selectImg.addEventListener('change',(e)=>{
//如果选择多张图片,实现图片预览,需循环e.target.files,然后new Image()动态生成img,循环设置img的src的值,最后append到body中。
let file = e.target.files[0]
// 第一种方式
previewImg.src = createObjectURL(file)
// 第二种方式
previewImg.src = createImgUrl(file)
},false)
实现图片上传
<input id='selectImg' type='file'/>
function uploadImg(data){
let xhr = new XMLHttpRequest()
xhr.open('POST','/postImg')
xhr.onreadystatechange = () => {
console.log('postImg')
}
xhr.send(data)
}
let selectImg = document.getElementById('selectImg');
selectImg.addEventListener('change',(e)=>{
//’file‘字段应和后端沟通,确保后端知道取字段的值。
let files = e.target.files,formData = new FormData();
formData.append('file',files)
uploadImg(formData)
},false)