Tengo un proyecto de NestJs en mi controlador. Acepto un Express.Multer.File pero necesito enviarlo a otro servidor. ¿Cómo puedo convertirlo a Blob para pasar a FormData ?
#action in my controller @Post('/upload') @UseInterceptors(FileInterceptor('avatar')) async uploadUserProfileAvatar(@UploadedFile() file: Express.Multer.File){ console.log(file) let blob = new Blob(file.mimetype) let formData = new FormData() //can't set because file is not Blob formData.append('file',file) let request$ = this.httpService.post('http://test_server/file',formData,{headers:{ 'Content-Type':'multipart/form-data' }}).pipe( map(response => response.data) ) request$.subscribe( response => { console.log(response) return response }) }Estaré agradecido por cada respuesta!
EDITAR:
¡De nuevo, gracias por tu ayuda! Como resultado, logré enviar con éxito el código de esta manera:
@Post('/upload') @UseInterceptors(FileInterceptor('avatar')) async uploadUserProfileAvatar(@UploadedFile() file: Express.Multer.File){ const FormData = require('form-data'); const formData = new FormData(); formData.append('file', Buffer.from(file.buffer) , file.originalname); let request$ = this.httpService.post('http://nginx_files/file',formData,{headers:formData.getHeaders()}).pipe( map(response => response.data) ) request$.subscribe( response => { console.log(response) return response }) }Use el paquete formdata como este:
const FormData = require('form-data'); const formData = new FormData(); formData.append('file', fileContent, 'file_name.ext'); let request$ = this.httpService.post('http://test_server/file', formData, { headers: formData.getHeaders() } ).pipe( map(response => response.data) )