我有一个带有文件控件的表单,可以选择多个图像。我想将多个图像上传到服务器,将数据上传到数据库。我尝试了formData:
按下提交按钮时,会调用postNewProduct(vlaue):
postNewProduct(value) {
const formData = new FormData();
const files: Array<File> = this.selectedFile;
for(let i =0; i < files.length; i++){
formData.append("uploads[]", files[i], files[i]['name']);
}
formData.append('productName', value.productName);
formData.append('productCategory', value.productCategory);
this.productService.postNewProduct(formData).subscribe(
message => alert(message));
}
通过表单控件选择图像时,会调用onFileSelected(fileInput):
onFileSelected(fileInput){
let images = fileInput.target.files.length;
if(images < 1 || images > 4){
alert("please select at image between 1 and 4");
}else{
this.selectedFile = <Array<File>>fileInput.target.files;
console.log(this.selectedFile);
}
}
这是我使用中的函数,可调用api:
postNewProduct(newProduct){
return this.http.post(`/api/product/postproduct`, newProduct);
}
这是我在节点后端的功能,但是request.body和文件中没有任何内容
exports.postProduct = function(request, response) {
console.log(request.body);
console.log(request.files);
productModel.postProduct(request, (message, lastID) => {
response.json(message, lastID);
});
}