Я пытаюсь загрузить один файл, используя multer. Хотя я могу загрузить файл вручную, просто используя узел в соответствующей папке, я не могу синхронизировать c с моим Angular внешним интерфейсом. Я создал папку с именем uploads в внутренней папке узла, куда файлы должны быть загружены. Кроме того, мне нужно загрузить файл в форме и передать его в API, куда он должен взять файл вместе с другими параметрами.
Код моего внутреннего узла, который работает ниже:
const multer = require('multer')
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/')
},
filename: function(req, file, cb) {
cb(null, Date.now() + file.originalname)
}
})
const upload = multer({storage: storage})
код маршрута узла
app.post(baseUrl+'/create', upload.single('imagePath'), blogController.createBlog);
Ниже мой Angular код компонента, который не работает:
selectImage(event) {
if(event.target.files.length > 0){
const file = event.target.files[0];
this.images = file;
}
}
public createBlog(): any {
const formData = new FormData();
formData.append('imagePath', this.images);
let blogData = {
title: this.blogTitle,
description: this.blogDescription,
blogBody: this.blogBodyHtml,
category: this.blogCategory,
imagePath: this.imagePath
} //end blogData
console.log(blogData);
this.blogHttpService.createBlog(blogData).subscribe(...calling the node route)
Интерфейс HTML Код:
<div>
<input type="file" name="imagePath" (change)="selectImage($event)" />
</div>