如何使用angular和nodejs将表单数据和文件发布到服务器?

时间:2018-11-30 21:02:52

标签: node.js angular express

我有一个带有文件控件的表单,可以选择多个图像。我想将多个图像上传到服务器,将数据上传到数据库。我尝试了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);
  });
}

0 个答案:

没有答案