如何使用NodeJS作为后端从Android上传图像(Base64字符串)到服务器?

时间:2016-09-16 13:38:14

标签: android node.js api image-uploading retrofit2

我正在使用Node js从Android应用程序上传图像。结果非常难以预测。有时上传是成功的,有时它是失败的。我在客户端使用Retrofit将数据发送到服务器API,它由两个字段组成:1)Base64 String和2)Image name。在服务器端,我正在使用这段代码

app.post("/api/image", function (req, res) {
    var image = req.body.image;
    var name = req.body.name;
    var response = {};

    fs.writeFile(path, new Buffer(image, "base64"), function (err) {
        response.message = "success";
        res.send(response);
    });
});

有时我会收到成功消息,而且大部分时间都是失败。
可能是什么问题?在我跳转到Node Js之前我使用PHP,并且相同的客户端代码在PHP上成功但在Node js中失败。 注意:我正在使用AWS。

2 个答案:

答案 0 :(得分:0)

您应该找到错误发生的位置:在writeFile调用之前或中间件调用之前。使用详细信息来增强您的问题也很好:实际发生了什么以及进程失败的位置,是否创建文件等等。

可能有几个问题:

  • 身体太大(如果我是对的话,身体解析器为100K)。
  • 正文已损坏(使用md5哈希确保)。

答案 1 :(得分:0)

看起来帕夏是对的。身体太大了,因为某些图像比其他图像大,所以我遵循这个代码并解决了我的问题。

myFunction