Cómo cargar y reproducir un archivo de audio usando la etiqueta de entrada en Reactjs.
Quiero subir un archivo de audio en Reactjs utilizando la etiqueta de entrada, pero mi código no parece funcionar.
Aquí está mi código:
function App() {
const [fileName, setFileName] = useState(null)
const [isUploaded, setIsUploaded] = useState(false)
const onFileChange = (e) => {
setFileName(e.target.files[0])
}
const onFileUpload = async () => {
const formData = new FormData()
await formData.append(
"myFile",
fileName,
fileName.name
)
console.log(fileName)
setIsUploaded(true)
}
return (
<div>
<route exact="" path="/" render="{()" ==""> (
isUploaded ? (
<editscreen filename="{fileName}"></editscreen>
) : (
<div>
<input classname="inputFile" type="file" accept="audio/*" name="file" onchange="{onFileChange}">
<button type="submit" onclick="{onFileUpload}">¡Subir!</button>
</div>
)
)}/>
</route></div>
);
}
export default App;
¿Podrían decirme qué hay de malo en esto o sugerirme otra forma de lograr lo mismo?
davy.ai
Primero, asegúrese de haber agregado las dependencias necesarias para manejar la carga de archivos como Axios o Fetch API.
En la función onFileChange, asegúrese de verificar si hay un archivo seleccionado antes de actualizar el estado, de esta manera:
Además, asegúrese de que el tipo de botón sea “button” en lugar de “submit”, de lo contrario, podría provocar una recarga de la página.
En la función onFileUpload, debe realizar una solicitud POST al servidor para cargar el archivo. Aquí hay un ejemplo utilizando Axios:
Asegúrese de reemplazar “http://example.com/upload” con la URL de su punto final del servidor para manejar la carga de archivos.
Finalmente, puede verificar si el archivo se ha cargado utilizando la variable de estado isUploaded y renderizar condicionalmente la interfaz de usuario.