Maison > Questions et réponses > le corps du texte
J'ai utilisé le module de demande de nœud pour capturer des images par lots, mais j'ai constaté que certaines images n'étaient pas complètement téléchargées. Certaines images étaient affichées normalement et d'autres étaient grises.
Et le téléchargement incomplet des images se produit également de manière aléatoire, pas nécessairement laquelle.
Le code est le suivant :
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');
});;
});
}
仅有的幸福2017-05-16 13:30:49
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);
Regardez le code et essayez de définir la longueur du contenu sur une valeur plus grande. J'ai déjà rencontré ce problème lors de l'écriture d'un serveur statique utilisant cpp. Certaines images étaient plus grandes que cette valeur, donc seulement la moitié d'entre elles ont été transférées avec succès. Certaines images sont plus petites que cette valeur et peuvent donc être transmises intégralement. Je ne sais pas si vous avez également ce problème.
仅有的幸福2017-05-16 13:30:49
Il y a peut-être un problème avec 30 écritures simultanées sur le disque. Pouvez-vous essayer de réduire le nombre d'écritures simultanées ?
Ou essayez parallelLimit() de async.js ?
滿天的星座2017-05-16 13:30:49
La méthode HEAD de http n'a pas de corps de réponse Si vous utilisez cette méthode http pour demander des images, vous n'obtiendrez certainement rien.