javascript下载图片的两种方式

使用nodeJS的request下载图片

  • 下载依赖包

    npm install request --save

  • Code
    let fs = require('fs');
    let request = require('request');
    
    function downloadImage(url, filePath) {
        return new Promise((resolve, reject) => {
            try {
                var stream = fs.createWriteStream(filePath);
                request(url).pipe(stream).on("close", () => {
                    stream.close();
                    resolve(true);
                });
            } catch (error) {
                console.log(error);
                reject(error);
            }
        });
    }
    
    function download() {
        var url = "http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png";
        var filePath = "D:/img/baidulogo.png";
        downloadImage(url, filePath).then(() => {
            console.log("Download success");
        }, (err) => {
            console.log(err);
        }).then(undefined, err => {
            console.log(err);
        })
    }
    
    download();
    

使用nodeJS的http下载

  • Code
    let fs = require('fs');
    let http = require('http');
    
    function downloadImage(url, filePath) {
        let req_option = {
            url: url,
            method: "GET",
            rejectUnauthorized: false,
            headers: {
                'Content-Type': 'application/octect-stream'
            }
        };
    
        if (fs.existsSync(filePath)) {
            fs.unlinkSync(filePath);
        }
    
        return new Promise((resolve, reject) => {
            http.get(url, req_option, (msg) => {
                msg.on("data", (data) => {
                    fs.writeFileSync(filePath, data, { flag: "a" });
                }).on("error", (err) => {
                    reject(err);
                }).on("end", () => {
                    resolve(true);
                });
            }).on('error', function (err) {
                Logger.error(__filename, `Download file error, ${err}`);
                reject(err);
            });
        });
    }
    
    function download() {
        var url = "http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png";
        var filePath = "D:/img/baidulogo.png";
        downloadImage(url, filePath).then(() => {
            console.log("Download success");
        }, (err) => {
            console.log(err);
        }).then(undefined, err => {
            console.log(err);
        })
    }
    
    download();
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值