javascript - Node.js 复制远程文件到服务器

标签 javascript node.js

现在我正在 PHP 中使用这个脚本。我将图像和尺寸(大/中/小)传递给它,如果它在我的服务器上,它会返回链接,否则它会从远程服务器复制它,然后返回本地链接。

function getImage ($img, $size) {
    if (@filesize("./images/".$size."/".$img.".jpg")) {
        return './images/'.$size.'/'.$img.'.jpg';
    } else {
        copy('http://www.othersite.com/images/'.$size.'/'.$img.'.jpg', './images/'.$size.'/'.$img.'.jpg');
        return './images/'.$size.'/'.$img.'.jpg';
    }
}

它工作正常,但我试图在 Node.js 中做同样的事情,但我似乎无法弄清楚。文件系统似乎无法与任何远程服务器交互,所以我想知道我是否只是搞砸了,或者它是否无法在 native 完成并且需要一个模块。

有人知道 Node.js 中的方法吗?

最佳答案

你应该看看 http.Clienthttp.ClientResponse .使用这些你可以向远程服务器发出请求并使用 fs.WriteStream 将响应写出到本地文件.

像这样:

var http = require('http');
var fs = require('fs');
var google = http.createClient(80, 'www.google.com');
var request = google.request('GET', '/',
  {'host': 'www.google.com'});
request.end();
out = fs.createWriteStream('out');
request.on('response', function (response) {
  response.setEncoding('utf8');
  response.on('data', function (chunk) {
    out.write(chunk);
  });
});

我还没有测试过,我不确定它是否可以开箱即用。但我希望它能引导您找到所需的东西。

关于javascript - Node.js 复制远程文件到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4174022/

相关文章:

javascript - 将由 SQL 构建的 JSON 对象从 PHP 传递到 JavaScript

javascript - 有没有办法在不同的 svg 路径上添加悬停效果?

node.js - 小橙色的 Nodejs Express 应用程序

javascript - 在javascript中从json对象访问n个值

javascript - 性能 : Calculating Div Positions

javascript - JavaScript 混淆中的函数表达式

javascript - 如何在node.js中比较特定场景的两天时间

javascript - getStaticProps 和 getServerSideProps 中的 fetch 是否与 native 浏览器 fetch API 相同?

node.js - 如何使用javascript正则表达式和nodejs writeFile修改里面的HTML标签?

linux - npm 包未在 Linux 上执行