Estoy tratando de codificar una imagen en base64 (para luego poder enviarla de esta manera a un servidor back-end). Todo parece funcionar hasta que uso JSON.stringify() en el objeto que tiene la imagen codificada. Creo que se pierde en JSON.stringify() y parece que no puedo encontrar una solución. He estado trabajando durante semanas en este tema y no pude encontrar una respuesta en ningún lado. ¡Por favor ayuda!
const [baseImage, setBaseImage] = useState(''); const [baseImageCorrect, setBaseImageCorrect] = useState(''); const convertBase64 = (file) => { return new Promise((resolve, reject) => { const fileReader = new FileReader(); fileReader.readAsDataURL(file); fileReader.onload = () => { resolve(fileReader.result); }; fileReader.onerror = (error) => { reject(error); console.log(error); }; }); }; const uploadImage = async (e) => { const file = e.target.files[0]; const base64 = await convertBase64(file); const base64RemovedType = base64.split(',')[1]; setBaseImage(`${base64RemovedType}`); }; useEffect(() => { setBaseImageCorrect(baseImage); console.log('current:' + baseImageCorrect); //prints out a long string with the RIGHT information }, [baseImage, baseImageCorrect]); const EncodedImage = JSON.stringify({ fileBase64: (baseImageCorrect, { encoding: 'base64' }), }); console.log(EncodedImage) //PRINTS THIS: "fileBase64":{"encoding":"base64"}} , without the encoded image stringSupongo que necesita la clave baseImageCorrect y la clave de encoding en el mismo nivel.
Usa esto en su lugar:
const EncodedImage = JSON.stringify({ fileBase64: {baseImageCorrect, encoding: 'base64' }, });