en este campo de entrada , solo aceptará archivos de video. si trato de cargar cualquier otro archivo, habilitando la opción de todos los archivos. mostrará una alerta. eso funciona bien, pero después de agregar cualquier otro archivo de formato, cuando verifica que no es un archivo de video, muestra la alerta pero el nombre del archivo permanece en el campo de entrada.
Quiero borrar el nombre del archivo del campo de entrada y e.target.files como claro. este es mi codigo...
<Label for="exampleFile">Upload Video</Label> <MyInput type="file" name="file" accept="video/*" id="exampleFile" label="Upload a Video" onChange={(e) => { let files = e.target.files; let file = files[0]; let name = files[0].name; let type = files[0].type; if (!file.type.match("video.*")) { alert("You Can't upload a video file "); } else { // some code } }} /> cuando estoy cargando cualquier otro formato, muestra la alerta, después de hacer clic en el botón OK , se muestra ...
el nombre del archivo todavía está en el campo de entrada. tengo que resetearlo
he probado con...
document.getElementById('exampleFile').value = nulluseRef()- agregó una propiedad de
valueconuseState()pero nada funciona.
alguien me puede ayudar a solucionar este problema...
Intente configurar un atributo clave para la entrada del archivo, luego, cuando necesite restablecerlo, actualice el valor del atributo clave:
resetsFileInput() { let randomString = Math.random().toString(36); setInputKey(randomString) } <Label for="exampleFile">Upload Video</Label> <MyInput type="file" key={InputKey || '' } /> name="file" accept="video/*" id="exampleFile" label="Upload a Video" onChange={(e) => { let files = e.target.files; let file = files[0]; let name = files[0].name; let type = files[0].type; if (!file.type.match("video.*")) { alert("You Can't upload a video file "); } else { resetsFileInput() // some code } }} />