j'écrire un script php nommé « download.php » pour pousser les fichiers au client,les performances de php fread et l'écho est très mauvaise
$fd = fopen($path, "rb");
if ($fd === false) {
echo "404 file not found";
return false;
}
Header("Content-type: image/png");
while (!feof($fd))
{
$buf = fread($fd, 1024);
if ($buf === false) {
break;
}
echo $buf;
}
fclose($fd);
Lorsque je teste sur le chrome pour télécharger une image 4M, il sera consomme 1,4s. le serveur Apache est sur mon PC. si je mets l'image dans www/et la télécharge directement, ça ne consomme que 44ms.
J'ai essayé d'augmenter la taille de la fread, mais cela améliore juste un peu les performances.
Au lieu de lire et sortir des morceaux dans une boucle, essayez simplement utiliser readfile. – CBroe
@CBroe readfile consommera 643ms mieux que fread puis echo, mais encore très long, et aussi readfile ne supporte pas le téléchargement partiel, y at-il une meilleure méthode? – yuanjianpeng
Consomme quoi ...? – CBroe