<input type="file" accept="image/*;capture=camera">

不加capture会打开两个

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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)
   }