使用node-request下载图像

时间:2012-07-21 14:00:18

标签: node.js

嘿我是节点js的真正初学者所以请耐心等待。我正在尝试下载文件(图像)这是我的代码:

function downloadFileFromURL( url, callback ) 
{
    file_name = path.basename(url);

    var wstream = fs.createWriteStream(file_name);

    wstream.on('error', function (err) {
        console.log(err, url);
    });

    wstream.on( 'close', function(){

        console.log( "finished downloading: ", url, this.path );

    });

    request(img_url).pipe( wstream );
}

如果我使用我的应用解析博客Feed,此功能会下载大约一半的图片。我可以通过浏览器看到图像很好。文件已创建,但其中一些保留为0字节。

我正在解析的示例Feed是:http://feeds.feedburner.com/ButDoesItFloat?format=xml

我在这里看到了这个问题:Writing image to local server这是类似的,很想看看它是如何完成节点请求的

1 个答案:

答案 0 :(得分:0)

看看http-get以获得它。你只需要传递两个参数,第一个是URL,第二个是保存文件的路径,非常简单。回调函数将文件名返回为“result.file”。检查下面的代码并试一试:

var http = require('http-get');
http.get('www.ohmydear.com/thesite.png', '/path/to/thesite.png', function (error, result) {
    if (error) {
        console.error(error);
    } else {
        console.log('File downloaded at: ' + result.file);
    }
});