gpt4 book ai didi

node.js - 如何使用express和multer将图像从Angular发送到Node JS?

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:40 25 4
gpt4 key购买 nike

我在谷歌上搜索了几个小时来寻找解决方案,但对我的项目没有任何作用。我想要一个可以从 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
})

}

我的 Angular 代码:

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 中)记录 req.body.file:

  app.route(requestPath).post((req, res) => {
upload.single('image')
console.log(req.body.file);

此外,在 Angular 服务中,定义 FormData 变量后,将 file 和 file.name 变量注销到控制台,以确保有数据可以在服务中发送。这将告诉您问题是在前端,还是在 Node 端。

const fd = new FormData();

console.log("this.selectedFile",this.selectedFile;
console.log("this.selectedFile.name", this.selectedFile.name);

fd.append('image', this.selectedFile, this.selectedFile.name);

关于node.js - 如何使用express和multer将图像从Angular发送到Node JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com