Archive zip corrupted php download
Fermé
teddy76db
Messages postés
99
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2019
-
17 juil. 2018 à 01:53
teddy76db Messages postés 99 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 1 septembre 2019 - 18 juil. 2018 à 22:16
teddy76db Messages postés 99 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 1 septembre 2019 - 18 juil. 2018 à 22:16
A voir également:
- The archive is corrupted zip
- What is my movie français - Télécharger - Divers TV & Vidéo
- Télécharger 7-zip - Télécharger - Compression & Décompression
- Décompresser fichier zip - Guide
- Billing zip code france - Forum Réseaux sociaux
- Win zip - Télécharger - Compression & Décompression
4 réponses
jordane45
Messages postés
38304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2024
4 705
17 juil. 2018 à 06:51
17 juil. 2018 à 06:51
Bonjour
Et le fichier... c'est un fichier. Zip au départ ou tu essais de le zipper au moment du téléchargement ?
Et le fichier... c'est un fichier. Zip au départ ou tu essais de le zipper au moment du téléchargement ?
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
17 juil. 2018 à 11:29
17 juil. 2018 à 11:29
'lut,
tu as pris du code de je ne sais où en collant les morceaux n'importe comment, ce qui explique sans doute ton problème:
Et enfin et surtout, d'où vient l'idée idiote d'utiliser
tu as pris du code de je ne sais où en collant les morceaux n'importe comment, ce qui explique sans doute ton problème:
- On ne spécifie pas un code HTTP via
header
, c'est viahttp_response_code
que ça se fait - Tu spécifies
Expires
2 fois. Enlèves-en un. - Tu mets
Accept-Ranges: bytes
alors que ton code ne supporte pas la reprise de téléchargement avec les ranges. C'est potentiellement la source de tes zip corrompus, où certains navigateurs téléchargent les premiers octets du fichier, puis le reste avec une 2e requête si l'en-tête est présent, dupliquant l'en-tête ZIP et un peu de données. Soit tu retires, soit tu implémentes les ranges -
Connection: keep-alive
c'est pas tes oignons car tu ne peux pas forcer une connexion keep-alive en PHP, c'est au serveur qui fait tourner le PHP de mettre cet en-tête si ça lui chante -
Content-Description
n'existe pas. À retirer, c'est superflu
Et enfin et surtout, d'où vient l'idée idiote d'utiliser
ob_clean? Comme tu fais un
ob_startavant, en faisant un clean tu nettoies tous les en-têtes que tu viens de définir, sans les envoyer. C'est plutôt
ob_end_flushque tu cherches.
teddy76db
Messages postés
99
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2019
3
17 juil. 2018 à 22:16
17 juil. 2018 à 22:16
Merci pour ta réponse cette fois-ci avec ce code le téléchargement se fait mais avant la fin cela télécharge le zip à 578ko sur 600ko, avec pour erreur : erreur réseau :
<?php
$dir = "lol/"; // trailing slash is important
$file = $dir .$_POST['filename'] ;
if (file_exists($file)) {
ob_start();
header("HTTP/1.1 200 OK");
header('Pragma: public');
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/zip");
header('Content-Disposition: attachment; filename='.basename($file));
header('Cache-Control: must-revalidate');
header('Content-Length: ' . filesize($file));
ob_end_flush();
readfile($file);
} else {
echo "Le fichier $file n'existe pas.";
}
exit;
?>
teddy76db
Messages postés
99
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2019
3
17 juil. 2018 à 23:36
17 juil. 2018 à 23:36
Correction de ma part j'utilise ce code et toujours un problème d'erreur réseau le téléchargement s'arrête à 586ko au lieu de 600ko ...
<?php
$dir = "lol/"; // trailing slash is important
$file = $dir .$_POST['filename'] ;
if (file_exists($file)) {
header('Pragma: public');
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/zip");
header('Content-Disposition: attachment; filename='.basename($file));
header('Cache-Control: must-revalidate');
header('Content-Length: ' . filesize($file));
readfile($file);
} else {
echo "Le fichier $file n'existe pas.";
}
exit;
?>
teddy76db
Messages postés
99
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
1 septembre 2019
3
18 juil. 2018 à 22:16
18 juil. 2018 à 22:16
Bonjour,
j'ai résolu le problème grâce à un forum Anglais là où ils sont beaucoup compréhensifs et plus sympathiques (ElementW merci pour ta bonne humeur, ironie)...
j'ai résolu le problème grâce à un forum Anglais là où ils sont beaucoup compréhensifs et plus sympathiques (ElementW merci pour ta bonne humeur, ironie)...