Forcer le download

Xav -  
Bobinours Messages postés 2903 Statut Membre -
Comment télécharger un fichier image, doc, xls ou autre sans qu'ils s'ouvrent dans le navigateur, quelqu'un peut-il m'en dire plus sur ce genre de script :

header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $nom_f . '"');
header('Content-Length: ' . filesize($filename));
header('Pragma: no-cache');
header('Expires: 0');
readfile($filename);

Merci de laisse un avis

A+ Xavier
A voir également:

2 réponses

teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Oui, ca sers a rien, laisse les gens se debrouiller avec leur navigateur comme ils l'entendent!!!

.  .
\_/
1
Bobinours Messages postés 2903 Statut Membre 504
 
Ton script devrait marché, mais remplace le content-type : application/octet-stream par celui de ton fichier.
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Des insomnies Bobi?

.  .
\_/
0
Xav
 
Plus simple

header('Content-type: application/force-download');
header("Content-Disposition: attachment; filename=$nom");

Bien dormi

En revanche sur la création de vignette depuis une image jpeg plus délicat, toujours un problème de chemin
0
Bobinours Messages postés 2903 Statut Membre 504
 
teebo : même pas :-/

Xav : Ce n'est pas plus simple, c'est moins complet.
De plus "application/force-download" est aussi un content-type générique et il faut donc, autant que possible, éviter de l'utiliser.

Autant prendre le content-type réel du fichier, ce qui permettra à tous les névigateurs de gérer au mieux ces fichiers sans mettre une extension abérante.

Il te suffirait de mettre un paramètre $EXT = DOC ou XLS ou JPG...
De le tester et d'afficher le bon content-type (voir la liste des content-type sur ce site je crois).
0