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

2 réponses

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

    .  .
    \_/
    1
  2. 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
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      Des insomnies Bobi?

      .  .
      \_/
      -1
    2. 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
    3. 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