Node.js:从PHP URL下载(自动生成的)文件

时间:2016-03-08 06:58:24

标签: javascript node.js

存在一个动态创建文件(zip)以供下载的URL。 http://example.com/generateZipFile.php

在浏览器中,打开网址只会打开下载对话框,用户可以将文件保存到硬盘中。

我需要使用node.js

自动下载此文件

我尝试过以下代码:

var file = fs.createWriteStream("http://example.com/generateZip.php");
var request = http.get(URL, function(response) {
    response.pipe(file);
});

然而,它只会将看似HTML重定向页面的内容下载到zip文件的当前咒语,而不是zip文件本身:

> <head><title>Document Moved</title></head> <body><h1>Object
> Moved</h1>This document may be found <a
> HREF="http://example.com/generated12345.zip">here</a></body>

我无法对生成的zip文件名进行硬编码,因为它可能会发生变化。

1 个答案:

答案 0 :(得分:1)

http模块不支持查询重定向。您可以使用request模块:

require('request')
  .get('http://example.com/generateZip.php')
  .on('error', function(error) {
    console.log(error)
  })
  .pipe(require('fs').createWriteStream(__dirname + '/tmp.file'))