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!