图片上传 & 预览
图片预览
DOM
<img id='previewImg'/> <input id='selectImg' type='file'/>
js
function createObjectURL(file){
//兼容问题
if(window.URL){
return window.URL.createObjectURL(file)
}else if(window.webkitURL){
return window.webkitURL.createObjectURL(file)
}else{
return null
}
}
function readAsDataURL(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 = readAsDataURL(file)
},false)
图片上传
DOM
<input id='selectImg' type='file'/>
js
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)
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号