Forcer le téléchargement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Forcer le téléchargement

par Aureusms » 09 oct. 2008, 15:13

Aucun problème :wink:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Invité » 09 oct. 2008, 14:35

Merci Aureusms pour ta réponse.

Malheureusement, ca donne le même résultat.
Je pense maintenant que ca vient plus d'un problème lié a l'utilisation du CMS SPIP.
J'ai testé avec un fichier "hors arborescence" SPIP, et ca fonctionne.

Je vais donc posé cette question sur un forum spip

encore une fois, merci a toi

par Aureusms » 09 oct. 2008, 13:58

Si tu indiques header('Content-Type: application/octet-stream');
le navigateur ne sachant de quel type MIME il s'agit va chercher et si il ne trouve pas va donner des trucs du genre que tu as eu...

Détermine le type MIME avant de lancer ta fonctio. Si ton visiteur veut un fichier excel (par exemple), tu sais bien qu'on peut savoir qu'il s'agit d'un fichier excel car il a l'extention .xls. Aussi tu isoles l'extention de ton fichier avec pathinfo (http://www.manuelphp.com/php/function.pathinfo.php). Ensuite tu ajuste la fonction header en fonction de l'extention et le tour est joué. Exemple :

<?php
$fichier = pathinfo('/www/htdocs/essai.xls');

$extention = $path_parts['extension'];

header("Content-type: application/$extention");
header("Content-Disposition: attachment; filename=".$path_parts['basename']);
...


?>

par PetarouxRay » 09 oct. 2008, 12:29

bonjour,

je ne sais pas trop ce qu'est un type MIME,

je dirais, apres avoir regarder un peu, celui ecrit : application/octet-stream

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Aureusms » 08 oct. 2008, 19:19

De kel type MIME s'agit -il ?

Forcer le téléchargement

par PetarouxRay » 08 oct. 2008, 17:17

bonjour,

Petit problème donc pour "forcer le téléchargement" d'un fichier. C'est à dire forcer l'affichage de la fenêtre "ouvrir ou enregistrer".
Dans ma page je met :
 <!php
    include 'forcer.php';
    forcerTelechargement('IMG/toto.ppt');
 !>
Et donc dans le fichier 'forcer.php' :
<?php
function forcerTelechargement($filename) {
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($filename) );
    header('Accept-Ranges: bytes');
    header('Content-Length: '.filesize($filename) );
    readfile($filename);
    exit();
}
?> 
Mon probleme c'est que le fichier source s'ouvre bien, mais le fichier télécharger demande une feuille css pour s'ouvrir :) je comprend rien.

a noter que j'utilise le CMS spip. le fichier source se trouve dans l'arborescence spip.

merci pour vos réponses