反应:无法将文件发送到后端

时间:2019-05-30 00:07:19

标签: javascript reactjs ecmascript-6

我正在尝试将图像发送到后端,但是出现错误。

我正在尝试这样做:

SignupPublicProfileAPICall({
   headerimage: startupFourthStepForm.headerimage
})
...

          <FormFieldFile
            type="file"
            onChange={e => {
              startupFourthStepFormActionHandler({
                headerimage: e.target.files[0],
              });
            }}
          />

我发送的是这个

lastModified: 1559082933991
lastModifiedDate: Tue May 28 2019 16:35:33 GMT-0600 (Central Standard Time) {}
name: "010919_North-Park_Guava-Queen_Front-View_a072fdd7-f1e9-4ee9-aae6-97b7bb5c2b54_800x454.png"
size: 127234
type: "image/png"
webkitRelativePath: ""

但是我看到的奇怪的事情是我是否做这样的事情:

setState({ headerimage: startupFourthStepForm.headerimage });

然后登录console.log(state.headerimage),得到一个空对象{}

这是提取调用的正文:

      body: JSON.stringify({
        headerimage,
      }),

为什么?

1 个答案:

答案 0 :(得分:0)

您应该创建FormData对象,而不是将headerImage字符串化。

<FormFieldFile
            type="file"
            onChange={e => {
              let formData = new FormData();
              formData.append('file', e.target.files[0]); // set the proper name of property

              startupFourthStepFormActionHandler({
                headerimage: formData
              });
            }}
          />

,然后在您的提取调用中,将主体替换为:

body: headerimage,