Bonjour,
Nouveau dans le monde du PHP j'éprouve quelques difficultés pour le codage de mon site web. Je vous remercie d'avance pour vos conseils !!!
Mon problème est le suivant : Je souhaite lancer le téléchargement d'un fichier .zip (contenu protégé par un mot de passe) grâce au script suivant. Cependant si le fichier est bien téléchargé il n'est pas possible de l'ouvrir, un avertissement apparaissant dans Winrar expliquant que l'archive est corrompue ("Fin de l'archive non attendue").
J'ai passé pas mal d'heures à essayer de comprendre et à chercher une solution mais rien ne semble fonctionner... Il faut dire que je ne comprends pas grand chose au fonctionnement des headers...
Voici mon code :
J'ai essayé les contrôles de cache sans succès, rajouté"ob_clean" sans succès... Mis mon dossier de documents en 777... mis content-type : application/zip...Rien ne marche...
Merci d'avance pour votre aide très très précieuse !!!
Nouveau dans le monde du PHP j'éprouve quelques difficultés pour le codage de mon site web. Je vous remercie d'avance pour vos conseils !!!
Mon problème est le suivant : Je souhaite lancer le téléchargement d'un fichier .zip (contenu protégé par un mot de passe) grâce au script suivant. Cependant si le fichier est bien téléchargé il n'est pas possible de l'ouvrir, un avertissement apparaissant dans Winrar expliquant que l'archive est corrompue ("Fin de l'archive non attendue").
J'ai passé pas mal d'heures à essayer de comprendre et à chercher une solution mais rien ne semble fonctionner... Il faut dire que je ne comprends pas grand chose au fonctionnement des headers...
Voici mon code :
$nomFichier = "essai0".$_GET['id'].".zip";
$urlComplete= "http://monsite.free.fr/downloadess/".$nomFichier;
ob_clean();
header("Content-Description: File Transfer");
header('Content-type: application/octet-stream');
header('Content-disposition: attachment; filename="' . $nomFichier . '";');
//header('Content-Transfer-Encoding: binary');
//header('Pragma: no-cache');
//header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
//header('Expires: 0');
header('Content-Length: ' . filesize($urlComplete));
flush();
//Lecture du fichier à envoyer :
readfile($urlComplete);
exit;
J'ai essayé les contrôles de cache sans succès, rajouté"ob_clean" sans succès... Mis mon dossier de documents en 777... mis content-type : application/zip...Rien ne marche...
Merci d'avance pour votre aide très très précieuse !!!