Мне очень трудно загрузить файл в свой бэкэнд (гнездо Js). Я не понимаю, как мой FileInterceptor считывает «fieldName», установленное как параметр Multer.
Вот мой mediaService (front)
/* 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 });
}
Выглядит очень просто, но мой сервер не сохраняет изображение и вернуть undefined.
Вот моя конечная точка API для загрузки файла
@Post()
@UseInterceptors(
FileInterceptor('file', {
storage: diskStorage({
destination: './public/upload',
filename: editFileName,
}),
fileFilter: imageFileFilter,
}),
)
async uploadedImage(
@UploadedFile() file
) {
return this.mediasService.create(new MediaDto(data))
}
Почему мой fileInterceptor не может прочитать ключ "file" моего formData? Если я отправляю изображение с помощью Почтальона, назовите файл ключа, он будет работать, как и ожидалось, файл будет сохранен в моем хранилище.
Уже пробовал несколько других подходов с заголовками «multiform-data», меняя имя ключа et c ..
Любая помощь будет очень признателен
Спасибо!