从WritableReadable Dropbox转换流下载文件。

问题描述 投票:0回答:1

我试图从Dropbox API下载PDF文件。它的工作原理很好,我得到的字符串,但当我转发的。fileBuffered 到客户端,我得到一个空文件。什么可以是一个问题?

let fileBuffered = '';

let dropboxPromise = new Promise(function (resolve, reject) {
            dropbox(params, function (err, result) {
                if (err) {
                    reject(err);
                } else {
                    resolve(result);
                }
            }).on('data',function(data) {
                fileBuffered += data;
            });
        });
const file = `data:application/pdf;base64, ${Buffer.from(fileBuffered).toString("base64")}`;
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader("Accept-Encoding", "base64");
    res.send(file);
node.js stream dropbox dropbox-api
1个回答
0
投票

似乎问题只是因为fileBuffered被下载时是空的。Node Javascript是同步的。你需要放这样的东西来解决这个问题。

    let fileBuffered = '';

    let dropboxPromise = new Promise(function (resolve, reject) {
                dropbox(params, function (err, result) {
                    if (err) {
                        reject(err);
                    } else {
                        resolve(result);
                    }
                }).on('data',function(data) {
                    fileBuffered += data;
                }).once('end', () => {
                    const file = `data:application/pdf;base64, ${Buffer.from(fileBuffered).toString("base64")}`;
                    res.setHeader("Content-Type", "application/pdf");
                    res.setHeader("Accept-Encoding", "base64");
                    res.send(file);

              });
    });
© www.soinside.com 2019 - 2024. All rights reserved.