【问题标题】:Posting a file to a url with node使用节点将文件发布到 url
【发布时间】:2015-01-23 03:55:31
【问题描述】:

我想做 wget --post-file=foo.xpi http://localhost:8888/ 对 nodejs 所做的事情,以便它是跨平台的。

我需要一些帮助,以找出一个简单的 zip 文件发布到给定 url。

我尝试了wget npm 包,但它似乎不起作用,我尝试了file-post npm 包,它也不起作用..

有什么建议吗?

为了什么值得我尝试将文件发布到Extension Auto-Installer

【问题讨论】:

    标签: javascript node.js http-post wget


    【解决方案1】:

    如果是我,我可能会使用 request module 并将文件向上传输。

    fs.createReadStream('foo.xpi').pipe(request.put('http://localhost:8888/foo.xpi'));
    

    当然,如果这样更有意义,您也可以使用 POST,并将文件路径作为 CLI 工具等的参数。

    从评论编辑

    所以,我展示的 requestjs 代码非常简单,并且确实有效。我的想法是,也许您的文件损坏是因为文件服务器无法处理流式上传(也许)。也就是说,您还应该能够使用管道语法发布它,如下所示:

    var req = request.post(url, function (err, resp, body) {
      if (err) {
        console.log('Error!');
      } else {
        console.log('URL: ' + body);
      }
    });
    var form = req.form();
    form.append('file', fs.createReadStream(filepath));
    

    【讨论】:

    • 由于我正在处理的服务器,它需要是一个发布请求,而且我希望该工具无需任何设置即可在 windows 和 osx 上工作,因此不能使用 wget。
    • ?我不是在建议 wget。我展示的代码在 Node.js 中。您可以使用request.post 而不是request.put,只要您发布到的网址将接受该文件,它的工作方式相同。
    • 所以我尝试使用post 而不是put,但没有成功,我不知道为什么我没有收到任何错误,我不知道如何调试这个管道.
    • by “当然,如果这样更有意义,您也可以使用 POST,并将文件路径作为 CLI 工具等的参数”我以为您的意思是使用 wget..
    • 用您现在正在尝试的内容更新您的代码。确保您发布到的 URL 正确。
    猜你喜欢
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2015-11-07
    相关资源
    最近更新 更多