繁体   English   中英

whatsapp-web.js 如何保存 downloadMedia()

[英]whatsapp-web.js how save downloadMedia()

嗨,我是新手,我有一个让我头疼的问题,我正在使用 whatsapp-web.js 1.12.6,但是当我下载多媒体文件时,我找不到如何保存它...我正在尝试使用 fs.writefile,但它给我一个错误如何将 object 保存为文件?

const listenMessage = () => {
      client.on("message", async (inboundMsg) => {
        console.log(inboundMsg);
    
        const { from, to, body, hasMedia, mediaKey } = inboundMsg;
    
        if (hasMedia) {
          const mediafile = await inboundMsg.downloadMedia();
          console.log(
            mediafile.mimetype,
            mediafile.filename,
            mediafile.data.length
          );
            
          //How to save that object as a file? =====================================
    
          fs.writeFile('./upload/', JSON.stringify(mediafile.data), function (err) {
            if (err) {
              console.log(err);
            }
          });
    
          //========================================================================
    
    
          var post = {
            message: body,
            direction: "inbound",
            number: from,
            media: "mymediafile",
          };
          var query = pool.query(
            "INSERT INTO chat SET ?",
            post,
            function (error, results, fields) {
              if (error) throw error;
              console.log(from, to, body, hasMedia);
            }
          );
        } else {
          var post = {
            message: body,
            direction: "inbound",
            number: from,
          };
          var query = pool.query(
            "INSERT INTO chat SET ?",
            post,
            function (error, results, fields) {
              if (error) throw error;
              console.log(from, to, body);
            }
          );
        }
      });
    };

确保你在你的工作目录上创建了文件夹'./upload',然后试试这个:

fs.writeFile(
  "./upload/" + mediafile.filename,
  mediafile.data,
  "base64",
  function (err) {
    if (err) {
      console.log(err);
    }
  }
);

我遵循了同样的推理,但现在我该如何做才能阅读这些文件,测试它,但它没有用

client.on("message", async (message) => {
  if (message.body === 'img') {
    fs.readFile("./upload/undefined", function (err, data) {
      if (err) {
        console.log(err);
      }
      console.log(data)
      const media = new MessageMedia('image/png', data);
      client.sendMessage(message.from, media);
    })
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM