为了账号安全,请及时绑定邮箱和手机立即绑定

使用node.js下载图像

使用node.js下载图像

慕姐8265434 2019-11-05 11:23:27
我正在尝试编写脚本以使用node.js下载图像。这是我到目前为止的内容:var maxLength = 10 // 10mbvar download = function(uri, callback) {  http.request(uri)    .on('response', function(res) {      if (res.headers['content-length'] > maxLength*1024*1024) {        callback(new Error('Image too large.'))      } else if (!~[200, 304].indexOf(res.statusCode)) {        callback(new Error('Received an invalid status code.'))      } else if (!res.headers['content-type'].match(/image/)) {        callback(new Error('Not an image.'))      } else {        var body = ''        res.setEncoding('binary')        res          .on('error', function(err) {            callback(err)          })          .on('data', function(chunk) {            body += chunk          })          .on('end', function() {            // What about Windows?!            var path = '/tmp/' + Math.random().toString().split('.').pop()            fs.writeFile(path, body, 'binary', function(err) {              callback(err, path)            })          })      }    })    .on('error', function(err) {      callback(err)    })    .end();}但是,我想使它更强大:有图书馆这样做并且做得更好吗?响应头是否有可能说谎(关于长度,关于内容类型)?我还应该关注其他状态代码吗?我应该麻烦重定向吗?我想我在某处读到了binary编码将被弃用。那我该怎么办?我怎样才能在Windows上使用它?还有其他方法可以使此脚本更好吗?原因:对于类似于imgur的功能(用户可以给我一个URL),我下载了该图像,然后以多种尺寸重新托管该图像。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 633 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信