Javascript – Knotenerfassung, der Bilddownload ist unvollständig
迷茫
迷茫 2017-05-16 13:28:49
0
3
778

Ich habe das Knotenanforderungsmodul verwendet, um Bilder stapelweise zu erfassen, habe jedoch festgestellt, dass einige Bilder unvollständig heruntergeladen wurden. Einige der Bilder wurden normal angezeigt und andere waren grau.
Und der unvollständige Download von Bildern geschieht auch zufällig, nicht unbedingt welcher.
Der Code lautet wie folgt:

var arr=["http:www.a.com/1.png","http:www.a.com/2.png","http:www.a.com/3.png"....]
for(var i=0;i<30;i++){
    lodPic(arr[i])
}
function loadPic(url){
    var _url=encodeURI(url);
    request.head(_url,function(err,res,body){
        if(err){
            console.log(err);
        }
        request(url).pipe(fs.createWriteStream(ph)).on('close',function(){
            console.log('finfish');
        });;
    });
}
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(3)
仅有的幸福
var request = require('request');

var options = {
  url: 'https://api.github.com/repos/request/request',
  headers: {
    'content-length': 1024,
  }
};

function callback(error, response, body) {
    //
}

request(options, callback);

看代码,把content-length设置的再大一点试试,我之前用cpp写静态服务器的时候遇到过,有的图片比这个值要大,所以只有一半被传输成功。而有的图片比这个值小,所以能传输完整。不知道你也是不是这个问题。

仅有的幸福

可能 30 个并发写入磁盘有点问题,题主试试减少并发数量?
或者试试 async.js 的 parallelLimit() ?

滿天的星座

http的HEAD方法是没有响应主体的,你用这个http方法请求图片肯定什么都拿不倒。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage