angular 4- 如何将 POST 中的文件发送到后端
angular 4- How do I send file in POST to backend
我在表单中上传了一个文件。我需要创建 post 请求以使用此上传的文件和其他一些表单字段进行后端处理。
下面是我的代码:
fileChange(event) {
const fileList: FileList = event.target.files;
if (fileList.length > 0) {
this.file = fileList[0];
this.form.get('file_upload').setValue(this.file);
}
}
onClick(){
const val = this.form.value;
const testData = {
'file_upload': this.file,
'id': val.id,
'name' : val.name,
'code': val.code,
};
this.http.post('https://url', testData,
.subscribe(
response => {
console.log(response);
});
}
除上传的文件外,每个字段值都被发送到后端。我如何将上传的文件连同表单字段一起发送到后端?
如果需要任何其他信息,请告诉我。
假设您在服务器上正确处理文件上传(通常是某种类型的 npm 包,如 multer 或 busboy),
您需要在 angular 端使用 npm 包来处理多部分表单数据。
ng-2-file-upload 是其中之一。
您正在尝试简单传递文件数据
'file_upload': this.file,
这是错误的
上传文件的方式有很多种,我喜欢用FormData,你的例子:
let testData:FormData = new FormData();
testData.append('file_upload', this.file, this.file.name);
this.http.post('https://url', testData).subscribe(response => {
console.log(response);
});
此处有更多详细信息
我在表单中上传了一个文件。我需要创建 post 请求以使用此上传的文件和其他一些表单字段进行后端处理。
下面是我的代码:
fileChange(event) {
const fileList: FileList = event.target.files;
if (fileList.length > 0) {
this.file = fileList[0];
this.form.get('file_upload').setValue(this.file);
}
}
onClick(){
const val = this.form.value;
const testData = {
'file_upload': this.file,
'id': val.id,
'name' : val.name,
'code': val.code,
};
this.http.post('https://url', testData,
.subscribe(
response => {
console.log(response);
});
}
除上传的文件外,每个字段值都被发送到后端。我如何将上传的文件连同表单字段一起发送到后端? 如果需要任何其他信息,请告诉我。
假设您在服务器上正确处理文件上传(通常是某种类型的 npm 包,如 multer 或 busboy),
您需要在 angular 端使用 npm 包来处理多部分表单数据。
ng-2-file-upload 是其中之一。
您正在尝试简单传递文件数据
'file_upload': this.file,
这是错误的
上传文件的方式有很多种,我喜欢用FormData,你的例子:
let testData:FormData = new FormData();
testData.append('file_upload', this.file, this.file.name);
this.http.post('https://url', testData).subscribe(response => {
console.log(response);
});
此处有更多详细信息