簡體   English   中英

如何使用NodeJS作為后端從Android上傳圖像(Base64字符串)到服務器?

[英]How to upload image(Base64 String) to the server from Android with NodeJS as a back end?

我正在使用Node js從Android應用程序上傳圖像。 結果非常不可預測。 有時上傳成功,有時卻失敗。 我在客戶端使用Retrofit將數據發送到服務器API,該服務器API由兩個字段1)Base64 String和2)映像名稱組成。 在服務器端,我正在使用這段代碼

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。

您應該查找錯誤發生的位置:在writeFile調用之前或在中間件調用之前。 同樣,最好用詳細信息來增強您的問題:實際發生了什么,過程在哪里失敗,它是否創建文件,等等。

可能有幾個問題:

  • 身體太大(如果我沒錯,則100K的解析器)。
  • 正文已損壞(使用md5哈希確保)。

看起來Pasha是正確的。 由於某些圖像比其他圖像大,因此主體太大,因此我遵循了此代碼並解決了我的問題。

var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: "50mb"}));
app.use(bodyParser.urlencoded({limit: "50mb", extended: true,parameterLimit:50000}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM