crea una aplicacion de vitejs
function App() {
const handleSubmit = (e) => {
e.preventDefault();
console.log(e.target[0].value);
console.log(e.target[1].files[0]);
};
return (
<div>
<form onSubmit={handleSubmit}>
<input type="text" />
<input type="file" />
<button type="submit">Submit</button>
</form>
</div>
);
}
export default App;
enviando datos a Cloudinary
const handleSubmit = async (e) => { e.preventDefault(); console.log(e.target[0].value);
const formData = new FormData();
formData.append("file", file);
formData.append("upload_preset", 'ekf9v8e0');
formData.append("api_key", import.meta.env.VITE_CLOUDINARY);
const res = await fetch(
"https://api.cloudinary.com/v1_1/fazttech/image/upload",
{
method: "POST",
body: formData,
}
);
const data = await res.json();
console.log(data)
};
crear un preview
<div>
<form onSubmit={handleSubmit}>
<input type="text" />
<br />
<input
type="file"
onChange={(e) => setFile(e.target.files[0])}
accept="image/*"
/>
<br />
{file && <img src={URL.createObjectURL(file)} alt="img" width="200" />}
<button type="submit">Submit</button>
</form>
</div>
React dropzone
npm install --save react-dropzone
import { useState, useCallback } from "react"; import { useDropzone } from "react-dropzone";
function App() { const [file, setFile] = useState(); const onDrop = useCallback((acceptedFiles) => { // Do something with the files console.log(acceptedFiles[0]); }, []); const { getRootProps, getInputProps, isDragActive, acceptedFiles } = useDropzone({ onDrop });
const handleSubmit = async (e) => { e.preventDefault(); console.log(acceptedFiles);
const formData = new FormData();
formData.append("file", acceptedFiles[0]);
formData.append("upload_preset", "ekf9v8e0");
formData.append("api_key", import.meta.env.VITE_CLOUDINARY);
const res = await fetch(
"https://api.cloudinary.com/v1_1/fazttech/image/upload",
{
method: "POST",
body: formData,
}
);
const data = await res.json();
console.log(data);
};
return (
Aprende a seleccionar elementos desde React usando React Dropzone
Compartir
Publicado: hace un mes
Actualizado: hace un mes