【问题标题】:Do not display the result when uploading a file to the server上传文件到服务器时不显示结果
【发布时间】:2021-04-07 23:52:32
【问题描述】:

我需要使用 axios 发送一张图片,然后将其 url 输出到控制台。后端工作正常,它提供一个数组并将图片加载到文件夹中。但是由于某种原因,我无法通过控制台输出到前面。根本不输出任何东西,虽然后端返回图片加载成功

const uploadImage = file => {
    return new Promise((resolve, reject) => {
        let formData = new FormData()
        formData.append('imagesUp', file)

        const config = {
            headers: {
                'Content-Type': 'multipart/form-data',
                Folder: 'editor',
            },
        }

        axios.post('/api/upload', formData, config).then(responseImage => {
            console.log(responseImage)
            resolve({ data: { link: '//werafgrswe' } })
        })
    })
}
{
  "status": "success",
  "message": "File uploaded successfully",
  "data": [
    {
      "_id": 0,
      "name": "2020result-global-town-1609439624185.jpg",
      "path": "/uploads/editor/2020result-global-town-1609439624185.jpg",
      "size": "1.13 MB"
    }
  ]
}```

【问题讨论】:

  • 避免使用Promise constructor antipattern!并添加一些错误处理。
  • 你是说console.log(responseImage) 不会发生吗?您发布的 JSON 数据是您从服务器获得的响应,而不是日志?
  • @Bergi 是的,它来自服务器的响应

标签: javascript reactjs promise axios


【解决方案1】:

移除额外的承诺

const uploadImage = (file) => {
  let formData = new FormData();
  formData.append("imagesUp", file);

  const config = {
    headers: {
      "Content-Type": "multipart/form-data",
      Folder: "editor"
    }
  };

  return axios.post("/api/upload", formData, config).then((responseImage) => {
    return responseImage.data;
  });
};
React.useEffect(() => {
  uploadImage(file).then((data) => {
    console.log(data);
  });
}, [file]);

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2017-02-27
    • 2016-02-18
    相关资源
    最近更新 更多