1

Je rencontre un pitit problème en PHP dans une page de téléchargement.
Je m'explique : j'ai une variable qui contient le nom du fichier, et je veux l'inclure.
Le navigateur propose alors bien le téléchargement, comme il faut, mais je n'arrive pas à ce que le nom par défaut soit celui du fichier à télécharger, et pas celui du fichier PHP...

Pour le moment j'utilise le script suivant :
  header("Content-type: application/force-download");   header("Content-Disposition: attachment; filename='$filename'");   readfile("files/$filename");
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

2

une précision : je m'en était pas rendu compte, mais ca semble finalement marcher en local avec easyphp, mais pas en distant avec free... étrange confus
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

3

Ceci devrait marcher :
            $mime_type = (PMA_USR_BROWSER_AGENT == 'IE' || PMA_USR_BROWSER_AGENT == 'OPERA')
                       ? 'application/octetstream'
                       : 'application/octet-stream';
            header ("Content-Type: $mime_type\n");
            header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT\n");
            header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT\n");
            header ("Content-length: " . filesize ($filename) . "\n");
            if (PMA_USR_BROWSER_AGENT == 'IE')
            {
                header ("Content-Disposition: inline; filename=\"$filename\"\n");
                header ("Content-Transfer-Encoding: binary\n");
                header ("Cache-Control: must-revalidate, post-check=0, pre-check=0\n");
                header ("Pragma: public\n");
            }
            else
            {
                header ("Content-Disposition: attachment; filename=\"$filename\"\n");
                header ("Content-Transfer-Encoding: binary\n");
                header ("Pragma: no-cache\n");
            }
            header ("Connection: close\n");
            readfile ($filename);
Mon site perso : http://www.xwing.info

4

whaouh tout ça fou

Bon marfi je v essayer ça smile

Au fait j'av pas vu, mais ça marchait déja à peu près : dans le 1er dialogue, ça me sortait des trucs bizzarre, mais dans le dialogue d'enregistrement il me proposait le bon nom...
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

5

edit : dsl mauvais forum sad
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

6

La méthode que je te donne devrait marcher sur TOUS les navigateurs.
La tienne est trop "courte" : ca ne donne pas toutes les infos au navig, ce qui fait que certains navigateurs ne fonctionneront pas....
Les navigateurs sont assez sensibles aux en-tetes HTTP smile

Une petite description :
La première ligne : parceque Opera et IE ne sont pas d'accord avec les autres pour le mimi-type...
Ligne suivante : le type, mais ça, tu connais grin
Les 2 lignes d'après : Pour éviter que le navigateur aille chercher dans sont cache (on triche sur les dates d'expiration)
La ligne suivante, avec filesize : permet au navigateur d'indiquer l'avancement du téléchargement par rapport a la taille totale : sinon, il ne sait pas ou s'arreter, donc il indique juste ce qui a déja été téléchargé, mais pas d'indication en %.
Ensuite, suivant les navigateurs, la méthode change, mais on fait la meme chose :
Attachement du fichier, transfert en binaire, et interdiction d'utiliser le cache (encore une fois, mais c'est indispensable)
On peut ensuite fermer la connexion, et envoyer le fichier derrière. Ca fait bizarre de fermer la connexion avant, mais pourtant, c'est comme ça qu'il faut faire smile
Mon site perso : http://www.xwing.info

7

Pk le fait de mettre
header("Location: $file");
ne suffit-il pas ?
T3 member
TimeToTeam : A new generation of games for TI

8

ben je crois que c pas mal expliqué en ./7 non ? Enfin moi ça me convient en tout cas comme explication smile
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

9

J'ai mal formulé ma question en fait :
pk ne pas utiliser header("Location: $file"); plutot que readfile("files/$filename");
T3 member
TimeToTeam : A new generation of games for TI

10

Non, ça n'a rien a voir :
Avant d'envoyer un fichier, il faut envoyer des infos au navigateur, pour qu'il sache comment réagir. C'est le role des header envoyés... Une fois ces headers envoyés, le navigateur attend les données : le fichier.

Si tu fais seulement un header ("Location: $file"); Tu rediriges directement sur ton fichier, et suivant le navigateurs, ça va faire du n'importe quoi...
En tous cas, je pense que tu t'es mal exprimé en ./9, mais faire un header ("Location: ") "a la place" du readfile ne marche pas du tout, vu que tu as déja envoyé les en-tetes http : le navig attend des données, pas une redirection...
Mon site perso : http://www.xwing.info

11

J'ai peut-être pas capté ce que voulais faire lOtR alors...
Mais j'espère que ma fonction de DL pour T3 marche chez tout le monde.
par exemple : http://arche.dyndns.org/~technic/dl.php?f=DDump-035.zip

Je fais seulement un header("Location: $f")
T3 member
TimeToTeam : A new generation of games for TI

12

@./11: ben ce que je veux faire c juste une page de DL ordinaire : tu ouvre la page, et au lieu d'avoir une page HTML tu as le DL du fichier qui se lance.

Le header(location) fournir une redirection il me semble... Tandis que moi le fichier est inclus. En fait une redirection ne marcherait pas, puisque g interdit l'accès au répertoire qui contioent les fichiers.
Editeur TI-Basic ? c'est TI-Edit : www.tiedit.tk
(ou sinon si ça marche pas cliquez ici)

Fumomomomomomomo !!

13

ben en meme temps, c'est pas tres important d'interdir l'acces a un repertoire de download, sauf si tu mets autre chose que des fichiers à dl mais bon... :/
warau kado niha fuku kitaru.

#trifouet#!!!

14

en fait c un peu de la merde ton systeme technic, sauf si on est sur de mettre un zip. je viens d'essayer avec un fichier ouga.ouga et le naviagateur vient d'ouvrir la page ouga.ouga au lieu de telecharger le fichier, voyons ce qui se passe avec opera
warau kado niha fuku kitaru.

#trifouet#!!!

15

pareil avec opera
warau kado niha fuku kitaru.

#trifouet#!!!

16

solid : c'est pas "de la merde", c'est fait expres.
J'ai pas envie que ca ouvre d'autres fichiers que ceux définis dans ma BDD c'est tout ...
T3 member
TimeToTeam : A new generation of games for TI

17

nan mais je sais bien, et c'est cette methode que j'utilise de toutes façons trigni, mais faut juste savoir que ça s'utilise pas avec n'importe quel type de fichier
warau kado niha fuku kitaru.

#trifouet#!!!