【发布时间】:2019-01-28 12:48:58
【问题描述】:
我在谷歌上搜索了几个小时以找到解决方案,但我的项目没有任何效果。我想要一个可以从 Angular 发送图像并将它们存储在 Node JS 目录中的模块。
我知道有什么问题,因为 req.file 总是未定义...
这是我的 Node JS 代码:
const express = require('express');
const app = express();
const multer = require('multer');
const bodyParser = require('body-parser');
const upload = multer({
dest: 'assets/' // this saves your file into a directory called "uploads"
});
app.use(express.static('assets'));
app.use(bodyParser.json());
var cors = require('cors')
app.use(cors())
app.route(requestPath).post((req, res) => {
upload.single('image')
console.log(req.file);
});
我的 Angular 服务:
addImage( ... , fd){
return this.http.post(requestPath, {
file: fd
})
}
我的角码:
selectedFile = null;
imageSelected(event){
this.selectedFile = event.target.files[0];
}
onSubmit(){
const fd = new FormData();
fd.append('image', this.selectedFile, this.selectedFile.name);
this.imageService.addImage( ... , fd).subscribe( _ => {
this.router.navigate(['../'], { relativeTo: this.route });
});
}
我的 HTML 代码:
<form class="form-horizontal" role="form" [formGroup]="addImage" (ngSubmit)="onSubmit()" id="uploadForm" enctype="multipart/form-data">
<div class="form-group">
<label class="col-lg-3 control-label">Choisissez la photo</label>
<input type="file" id="image" name="image" class="form-control" formControlName="photo" (change)="imageSelected($event)" required>
</div>
如果有人可以帮助我,非常感谢! 我正在做一个照片库,但是如果我不能上传照片就没有用了...
【问题讨论】:
标签: node.js angular express multer