将文件从React上传到远程服务器

时间:2018-07-16 21:25:47

标签: node.js reactjs multer

我正在尝试以任何一种方式上载文件,但是我无法使其正常工作。客户端代码如下:

 var image = document.getElementById("upload").files[0];

我以这种方式抓取文件,我对它进行控制台记录,并且工作正常。

  const request = axios.post(PROJECTS_URL, {avatar: image});

我发送了发帖请求并获得状态500。 当我将发布请求的正文更改为纯文本,并编辑服务器以接收文本时,它可以正常工作。

我也尝试过这个:

var formData = new FormData();
formData.append("avatar", image, image.name)
const request = axios.post(PROJECTS_URL, formData);

对于服务器端代码,我正在使用multer,它看起来像这样:

app.post("/api", upload.single("avatar"), (req, res) => {

var entry = new Entry({
    img: req.file.path
})

entry.save().then((data) => {
    res.status(200).send(data)
}, (e) => {
    res.send(e)
})
})

我设置了multer中间件,只是不包括它。 我正在尝试将图像上传到mongodb数据库,以便以后可以在客户端使用图像url。 我真的被困在这里,不胜感激任何建议。

在我的chrom控制台上,我看到了 内容类型:多部分/表单数据; boundary = ---- WebKitFormBoundarye2QF7dzzJWEGUjJE; 边界部分是什么,是否阻止了我提交表单?

1 个答案:

答案 0 :(得分:0)

所以问题出在我的服务器上,我没有用上载文件推送到git。在heroku上查看日志很有帮助,从那里我收到一条错误消息“无此文件或目录”。我经常使用git commit -am命令,以至于我忘了检查git状态,然后上传了上传文件。