如何使用fetch API将上传的文件(图片,pdf)和JSON数据同时传到后端?

How to pass uploaded files(images, pdf) and JSON data to the backend at the same time using fetch API?

我使用 React JS 作为前端框架。我有一个包含不同输入的表单。其中一些是文本输入,另一些是文件上传。这是 post 请求。

        const formData = new FormData();
        const imgUpload = document.querySelector('#imgUpload');
        const mouUpload = document.querySelector('#mouUpload');
        
        //-------setting the form data----------
        formData.append('oName', formValues.oName);
        formData.append('oWeb', formValues.oWeb);
        formData.append('oVC', formValues.oVC);
        formData.append('oVP', formValues.oVP);
        formData.append('oImg', imgUpload.files[0]);
        formData.append('oMou', mouUpload.files[0]);
        

        //---------fetch post request--------------
        fetch('https://httpbin.org/post', {
          method: 'POST',
          body: formData
        })
        .then(response => response.json())
        .then(result => {
          console.log('Success:', result);
        })
        .catch(error => {
          console.error('Error:', error);
        });

这是一个成功的 post 请求,我可以看到这个结果。

但我希望能够在数据文件上传[=]下看到文本输入归档数据 28=] under files 在此成功结果中。我知道我正在将这些值传递给 formData ,我这样做是因为我想让 text input data 以某种方式显示在结果中.我该如何实施?如果我在这里做错了什么,请指导我。感谢您的帮助。

必须对 HTTP 请求正文进行编码以某种方式。然后服务器端代码必须对其进行解码。

从您的评论中我们可以推断,如果您将正文编码为 JSON,那么它将对其进行解码并将其放入 data。如果您将其编码为多部分,那么它将对其进行解码并将文件放入 files 并将其余数据放入 forms.

如果您希望它将其余数据放入 data,那么您需要更改服务器端代码。

我只是从 form 自己那里读到的。