Uso angular12, ngx-quill-upload con quill editor para cargar publicaciones de usuarios. Estoy tratando de cargar imágenes en el servidor, luego incrustar la URL en la cadena html y conservar la cadena html en la base de datos. Puedo subir con éxito la imagen al servidor, sin embargo, cuando conservo la cadena html en la base de datos, la cadena html aún contiene la cadena base64 y no la URL de la imagen. ¿Cómo deshabilito la cadena base64 pero uso la URL?
Aquí está mi manejador de imágenes:
imageHandler: { upload: (file) => { return new Promise((resolve, reject) => { if (file.size < 1000000) { // Customize file size as per requirement console.log("my sas is : " + this.imagesas); this.blobService.uploadImage(this.imagesas, file, file.name,() => {}). then(()=>{ resolve("https://example.blob.core.windows.net/post-images/"+file.name) }) .catch( ()=>{ reject("error") } ); let url = "https://example.blob.core.windows.net/post-images/"+file.name; console.log(url); } else { reject('Size too large'); } }); }, accepts: ['png', 'jpg', 'jpeg', 'jfif', 'apng', 'bmp', 'gif', 'ico', 'cur', 'pjpeg', 'pjp', 'svg', 'tif', 'tiff', 'webp'] // Extensions to allow for images (Optional) | Default - ['jpg', 'jpeg', 'png'] } as Options,Es más fácil hacerlo si lo configura como json, no como html. Esto es lo que hice:
ReplaceBaseWithAddress(jsonstring: string) { let data: QuillVM = JSON.parse(jsonstring); let baseStrings: string[] = []; if (data.ops.length > 1) { for (let ctr = 0; ctr < data.ops.length; ctr++) { if (data.ops[ctr].insert.image) { let dataimage = data.ops[ctr].insert.image.split(","); data.ops[ctr].insert.image = "BASE 64 replaced image with address location here"; if (dataimage[1]) { let image64string:string = dataimage[1]; baseStrings.push(image64string); } } } } }Espero que alguien más haya encontrado una mejor manera.