不加capture会打开两个
uploadImgClick = () => {
const that = this
const uploadInput = document.createElement('input')
uploadInput.style.display = 'none'
uploadInput.type = 'file'
uploadInput.accept = 'image/*'
// uploadInput.capture = "camera"
uploadInput.addEventListener('change', evt => {
let file = evt.target.files[0]
var reader = new FileReader()
// 绑定load事件
// const { fileName, base64Str } = imageItem;
reader.readAsDataURL(
document.querySelector('input[type=file]').files[0]
)
reader.onload = function (e) {
that.setState({
loadingStatus: true
}, () => {
fetch('/ui-api/aliyun/uploadBase64ImageSimple', {
credentials: 'include',
method: 'POST',
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({
fileName: file.name,
base64Str: e.target.result
})
})
.then(res => {
that.setState({
loadingStatus: false
})
return res.json()
})
.then(res => {
// 用完需要清除掉,要不会一直取第一个
document.body.removeChild(uploadInput)
if (res.code === 0) {
that.setState({
imgUrl: res.data.url
})
}
})
})
}
})
document.body.appendChild(uploadInput)
const evt = document.createEvent('MouseEvents')
evt.initMouseEvent('click', false, false)
uploadInput.dispatchEvent(evt)
}