(php)permettre de voir ou télécharger un doc

Résolu/Fermé
guillaume_74
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
- 16 déc. 2009 à 10:26
guillaume_74
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
- 16 déc. 2009 à 14:31
Bonjour,
J'ai des documents stockés sur mon serveur, et j'aimerai permettre au gens de télécharger (ou voir) ces documents.
Donc en php...
Jusque la, j'avais utilisé "readfile" en initialisant les paramètre "header" auparavant, mais trop de bugs sont liés à cette méthode (fait n'importe quoi sur IE6, et lorsqu'il s'agit d'un fichier .txt, il m'injecte le l'html de ma page dans le fichier texte ==> pas terrible...)

Bref, comment faire alors pour télécharger/ voir un doc avec un script php? voir même javascript, mais comme c'est coté client, je doute que cela soit possible.

Merci d'avance a ceux qui pourront m'apporter leur aide =)

3 réponses

guillaume_74
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
22
16 déc. 2009 à 11:19
Personne ne sait faire?
0
guillaume_74
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
22
16 déc. 2009 à 11:40
Je pense avoir trouvé mon problème, c'est qu'il y a un affichage HTML dans la page ou j'appelle le "header" c'est possible que cela vienne de la?
0
guillaume_74
Messages postés
111
Date d'inscription
samedi 18 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
22
16 déc. 2009 à 14:31
Bon (même si tout le monde s'en fou...) j'ai trouvé le problème, il faut faire un "exit" a la fin du code!
$path='documents/'. $document;
$document=strtolower($document);
@ob_end_clean();
@ob_clean();
@ini_set('zlib.output_compression', 'Off');

header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: public');
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream');
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename="'.basename($path).'";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($path));
flush();
readfile($path);
exit();

Et maintenant ca marche bien ;)
0