Сохранить изображение в файл с Unirest в Nodejs - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь загрузить изображение, используя Unirest, но изображение повреждено после того, как я его сохранил

const downloadChapterPage = async (url, pageName) => {
    return new Promise(async (resolve) => {
        unirest.get(url)
            .end(async (res) => {
                if (res.error) {
                    console.log("Error when downloading page : " + pageName, " ", res.error)
                    resolve();
                }
                fs.writeFileSync(pageName + '.jpg', res.raw_body);
                resolve();
            });
    });
}

downloadChapterPage('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', 'page1');

также я подал в суд на этот способ, но он также не работает

const downloadChapterPage = async (url, pageName) => {
    return new Promise(async (resolve) => {
        unirest.get(url)
            .end(async (res) => {
                if (res.error) {
                    console.log("Error when downloading page : " + pageName, " ", res.error)
                    resolve();
                }
                const data = Buffer.from(res.raw_body);
                fs.writeFileSync(pageName + '.jpg', data, 'binary');
                resolve();
            });
    });
}
downloadChapterPage('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', 'page1');

1 Ответ

0 голосов
/ 11 ноября 2019

Как насчет этой модификации?

Точки модификации:

Модифицированный скрипт:

const downloadChapterPage = async (url, pageName) => {
    return new Promise(async (resolve) => {
        unirest.get(url)
            .encoding(null) // Added
            .end(async (res) => {
                if (res.error) {
                    console.log("Error when downloading page : " + pageName, " ", res.error)
                    resolve();
                }
                const data = Buffer.from(res.raw_body);
                fs.writeFileSync(pageName + '.png', data, 'binary'); // Modified or fs.writeFileSync(pageName + '.png', data);
                resolve();
            });
    });
}

Справка:

...