Je suis un novice sévère, mais j’ai fait beaucoup de recherches avant de poster, alors j’espère que vous pouvez aider.
J’essaie de servir un grand fichier .zip hébergé sur un serveur Apache, environ 6,4 Go. Le fichier montre un téléchargement complet dans le navigateur, mais en fait, environ 500 Mo seulement ont été téléchargés. Cela semble être un problème très courant et a trouvé beaucoup d’autres publications et informations sur le Web, mais le problème a été persistant pour moi.
Grand fichier Zip offert en téléchargement avec php
Le téléchargement de IE est incomplet même s’il prétend avoir du succès
Les gros téléchargements zip échouent uniquement dans IE
J’ai testé avec Chrome 39.0.2171.71, mais j’ai le même problème avec FireFox et IE. Je pense que mon fichier est beaucoup plus volumineux que ce que les autres ont publié, par conséquent, leurs solutions ont peut-être aidé la situation, mais elles n’ont pas résolu le problème. J’ai un second fichier .zip d’environ 400 Mo et j’utilise les mêmes en-têtes http avec succès.
L’article le plus utile que j’ai trouvé est celui-ci: http://perishablepress.com/http-headers-file-downloads/ et j’ai copié une grande partie du php ci-dessous de cette source, car il semble que d’autres affiches sur ce site ont fait .
J’ai également essayé d’utiliser X-SendFile, mais je ne pense pas que mon hébergeur possède le module Apache approprié installé. J’ai passé toute la journée à travailler là-dessus et je n’ai plus d’idées! J’ai utilisé un gestionnaire de téléchargement avec succès, je ne sais pas si c’était juste par hasard ou quoi, mais je ne veux pas obliger mes clients à télécharger et installer un programme séparé juste pour obtenir le fichier .zip.
Voici les en-têtes de réponse lorsque je lance le php ci-dessus
Adresse distante: 76.162.142.242 URL de demande: **** / GetSW.php Méthode de demande: GET Code de statut: 200 OK En-têtes de demande Accepter: text / html, application / xhtml + xml, application / xml; q = 0,9, image / webp, * / *; q = 0,8 Accept-Encoding: gzip, dégonfler, sdch Accept-Language: en-US, en; q = 0.8 Autorisation: Basic ****** Connexion: restr en vie Cookie: _ga = GA1.2.1176828605.1417985823 DNT: 1 Hôte: www.teamursa.org Referer: http: //www.teamursa.org/****.html Agent utilisateur: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 39.0.2171.71 Safari / 537.36 En-têtes de réponse Cache-Control: public Connexion: Keep-Alive Description du contenu: transfert de fichier Content-Disposition: pièce jointe; filename = "huge.zip" Content-Length: 6720560824 Content-Transfer-Encoding: binary Content-Type: application / octet-stream Date: dim, 07 déc 2014 22:16:57 GMT Expire: 0 Keep-Alive: timeout = 3, max = 120 Pragma: public Serveur: Apache X-Powered-By: PHP / 5.2.17
Vous devrez peut-être augmenter la limite de mémoire sur le serveur. Essayez ci-dessous juste après l’ouverture de la balise PHP
ini_set('memory_limit','16M');
Et juste continuer à augmenter de 16M
Je vous recommande d’essayer d’utiliser un navigateur Web pour télécharger le fichier directement, ce qui signifie que vous allez à l’adresse où le fichier est stocké. Par exemple, http://www.example.com/downloads/download.zip J’espère que cela vous aidera