react hooks 图片上传

react

react hooks 多图片上传

<div className={feed.uploadcot}>

<ul className={feed.uploadimg}>

{

arrImg?.length >0 && arrImg.map((item, index) =>{

return(

<li key={index}>

<img src={item} />

</li>

)

})

}

</ul>

<div className={feed.upload}>

<div className={feed.plusA}>

<span>+</span>

<input type="file" onChange={(event) =>handleUpdate(event)} className={feed.file}/>

</div>

</div>

</div>

   let accepts = ['image/jpeg', 'image/jpg', 'image/png']

const [arrImg, setArrImg] = useState([])

const handleUpdate = (event) =>{

if(arrImg.length > 4){

setMsgskbar("最多可以上传5张图片")

setSnackbar({ ...snackbar, open: true })

return false

}

let fileImg =event.target.files[0];

// console.log(fileImg)

Accepts(fileImg)

}

// 图片格式限定

const Accepts = (files) => {

if(!files){

return false

}

let type = Array.isArray(accepts) && accepts.indexOf(files.type,0)

if(type >= 0){

if (files.size > 2097152) {

setMsgskbar("上传的文件不能大于2M")

setSnackbar({ ...snackbar, open: true })

return;

}else{

Preview(files)

    }

}else{

setMsgskbar("请上传格式为jpg、png,jpeg的图片")

setSnackbar({ ...snackbar, open: true })

}

}

// 本地预览

const Preview = (file) =>{

const reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function (e) {

// arr添加新数据

setArrImg([...arrImg, this.result])

}

}

以上是 react hooks 图片上传 的全部内容, 来源链接: utcz.com/z/384208.html

回到顶部