Saltar al contenido

¿Cargar una imagen codificada en base64 usando FormData?

Solución:

Los datos de su imagen no son más que una cadena, así que añádalos a su objeto FormData de esta manera:

data.append("image_data", image);

Luego, en el lado del servidor, puede almacenarlo directamente en una base de datos o convertirlo en una imagen y almacenarlo en el sistema de archivos. Puede encontrar útil esta publicación.

 var imgBase64 = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCA..." //your bse64 image

onSubmit(){
const file = DataURIToBlob(imgBase64)
const formData = new FormData();
formData.append('upload', file, 'image.jpg') 
formData.append('profile_id', this.profile_id) //other param
formData.append('path', 'temp/') //other param
}

    function DataURIToBlob(dataURI: string) {
        const splitDataURI = dataURI.split(',')
        const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1])
        const mimeString = splitDataURI[0].split(':')[1].split(';')[0]

        const ia = new Uint8Array(byteString.length)
        for (let i = 0; i < byteString.length; i++)
            ia[i] = byteString.charCodeAt(i)

        return new Blob([ia], { type: mimeString })
      }

Encontré que esta publicación (Convertir URI de datos en archivo y luego agregar a FormData) es bastante útil. Si su archivo ya está representado como una cadena codificada en base64, primero deberá crear una representación de blob a partir de eso y luego puede utilizar FormData append.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *