如何在Vue Js中检测相同文件输入的更改?
<template>
....
<input ref="imageUploader" type="file" accept=".jpg, .jpeg" @click="resetImageUploader" @change="uploadImageFile">
....
</template>
<script>
export default {
methods: {
resetImageUploader() {
this.$refs.imageUploader.value = '';
},
uploadImageFile() {
....
}
}
}
</script>
uploadImageFile
方法的结尾处添加一行代码:this.$refs.imageUploader.value = '';
:) - grreeenn和 @zubair 的答案一样,但对于 vue 3
更加方便:
<input type="file" @change="renderImage($event)" @click="$event.target.value=''">
@zubair-0和@grreeenn的答案完全有效。在这里,您可以使用空字符串初始化输入值来实现上传文件处理后的实现,因为事件仅在值更改时触发,您可以在Vue 3中使用Template Refs实现此操作。
<template>
<input
ref="imageUploader"
type="file"
class="custom-file-input"
name="file-upload"
accept="image/png, image/gif, image/jpeg"
@change="uploadImageFile($event)"
>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const imageUploader = ref(null)
const uploadImageFile = (event) => {
console.log('File loaded...')
// We initialize the input value, this is the trick
imageUploader.value.value = ''
}
return {
imageUploader,
uploadImageFile
}
}
}
</script>