Javascript 如何将文件与其他数据一起上载?理解多部分形式有困难

Javascript 如何将文件与其他数据一起上载?理解多部分形式有困难,javascript,rest,http,file-upload,Javascript,Rest,Http,File Upload,我正在试图找出如何休息POST/image来创建新图像。我想发送文件数据以及用户的名称和说明 在这种情况下,请求是如何工作的?另外,我可以使用json来实现这一点吗 谢谢您只需将该文件的文件/数据附加到FormData对象中,如下所示: const file_data = new FormData(); const imgFile = this.uploadInput.files[0]; /*whatever your file is, from the input tag*/ file_da

我正在试图找出如何休息
POST/image
来创建新图像。我想发送文件数据以及用户的名称和说明

在这种情况下,请求是如何工作的?另外,我可以使用json来实现这一点吗


谢谢

您只需将该文件的文件/数据附加到FormData对象中,如下所示:

const file_data = new FormData();
const imgFile = this.uploadInput.files[0]; /*whatever your file is, from the input tag*/

file_data.append('imgFile', imgFile);    /*the image file*/
file_data.append('name', "name of file")    
file_data.append('description', "description of file");   
在服务器端节点上,您可以从请求中提取信息,如:

var image = req.files.imgFile;
var name = req.body.name;
var description = req.body.description;
/*save'em to database or something*/
您可以看到FormData中的文件将从req.files而不是req.body中提取


编辑:您可能希望将请求中的“内容类型””标题设置为“多部分/表单数据”

如果您发送的是多部分表单,那么JSON就没有意义了——它们都是消息体中结构化信息的一种方式。除非您将JSON作为多部分的一部分,但我想不出有多少理由这样做。MIME多部分的快速描述。如果您正在使用,请选择您想要添加的任何额外数据字段。
append()
方法不仅仅适用于文件。每个
append()
调用都会添加一个单独的部分。这就是为什么它被称为多部分;我们可以将不同类型的多个零件添加为一个实体。