转换为base64会返回一个非常短的字符串(太短)

时间:2017-04-26 20:04:31

标签: javascript node.js forms

我提交的表单有时会包含单个图片,有时会包含多个图片。但是,当我提交图像时,请说1.jpg,我的节点服务器的控制台输出为MS5qcGc=。我假设不知何故图像没有被发送,只有文本?如何发送整个图像,并将其转换为base64

客户端

<form method="post">
    <div class="form-group">
        <label for="imgs">Images</label><input accept="image/*" multiple name="imgs" type="file">
    </div>
</form>

服务器

if (typeof req.body.imgs == "string") {
  console.log(new Buffer(req.body.imgs).toString('base64'));
} else {
  for ( i in req.body.imgs) {
    console.log(new Buffer(req.body.imgs[i]).toString('base64'));
  }
}

1 个答案:

答案 0 :(得分:2)

您需要将enctype属性的值multipart/form-data添加到form元素。

<form method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="imgs">Images</label><input accept="image/*" multiple name="imgs" type="file">
    </div>
</form>