Pesquisa de site

typescript - Enviar arquivo do Angular 9 para o NestJs


Estou tendo muita dificuldade para enviar um arquivo para o meu backend (NestJs). Não entendo como meu FileInterceptor lê o "fieldName" definido como uma opção do Multer.

Aqui está meu mediaService (frontal)

/* Upload an image into the server */
uploadImage(image: File) {
  const formData = new FormData();
  formData.append('file', image);
  return this.http.post<any>(`${this.serverUrl}/medias`, { formData });
}

Parece muito simples, mas meu servidor não salva a imagem e retorna indefinido.

Aqui está meu endpoint de API para upload de arquivos

@Post()
    @UseInterceptors(
        FileInterceptor('file', {
            storage: diskStorage({
                destination: './public/upload',
                filename: editFileName,

            }),
            fileFilter: imageFileFilter,
        }),
    )
    async uploadedImage(
        @UploadedFile() file
    ) {
        return this.mediasService.create(new MediaDto(data))
    }

Por que meu fileInterceptor não consegue ler a chave "file" do meu formData? Se eu enviar uma imagem usando o Postman, nomeando a chave como file, funciona como esperado, o arquivo é salvo no meu destino de armazenamento.

Já tentei várias abordagens diferentes, com cabeçalhos "multipart-data", mudando o nome da chave, etc..

Qualquer ajuda seria muito apreciada

Obrigado!