【问题标题】:How to upload a remote image in Node/request?如何在节点/请求中上传远程图像?
【发布时间】:2015-10-17 01:24:27
【问题描述】:

我想使用 Node 和请求模块将远程图像上传到我自己的服务器。我已经弄清楚如何使用以下代码上传本地图片:

var options = {
    url: 'https://myownserver.com/images'
};
var req = request.post(options , function optionalCallback(err, httpResponse, body) {
  console.log('Upload successful!  Server responded with:', body);
});

var form = req.form();
form.append('file', fs.createReadStream(__dirname + '/testimg.png'));

我需要对此代码进行哪些修改才能上传远程图像?这是我一直在使用的图像:https://www.filepicker.io/api/file/egqDUkbMQlmz7lqKYTZO

我尝试在远程 URL 上使用 fs.createReadStream,但没有成功。如果可能的话,我宁愿不必在将图像上传到我自己的服务器之前将其保存在本地。

【问题讨论】:

    标签: node.js multipartform-data node-request


    【解决方案1】:

    这是我与刮板一起使用的一段代码。我在这里使用回调,所以我可以在保存到我的模型时使用它作为位置。我将您图片的位置放在下面,但在我的代码中我使用 req.body.image。

    var downloadURI = function(url, filename, callback) {
    
      request(url)
        .pipe(fs.createWriteStream(filename))
        .on('close', function() {
          callback(filename);
        });
    };
    
    downloadURI('https://myownserver.com/images', __dirname + '/testimg.png', function(filename) {
     console.log(done);
    }
    

    【讨论】:

    • Thx - 效果很好 - 出于好奇,是否可以在不创建任何文件的情况下做同样的事情?或者这只是一个必要的步骤?
    • 很高兴我能帮上忙。如果这回答了您的问题,那么请接受它作为正确答案。 – 这只是另一种使用请求的方式,我们在响应正文中流式传输并保存。一个典型的用途是当您抓取页面然后收集数据以对其进行处理时。所以它看起来像:request(url, function(error, response, body) {...}
    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多