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)