Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2006, 17h13   #1
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Par défaut Lancer automatiquement le telechargement d'un fichier avant une redirection

Salut tout le monde,
Voila je cherche un moyen pour lancer le telechargement d'un fichier à l'ouverture d'une page de transition ..

Je m'explique :
L'utilisateur clic sur un lien "telecharger" > une page temporaire s'ouvre et lance le telechargement (fenetre avec enregistrer sous ...) puis redirige automatiquement le user > l'utilisateur arrive sur une page lui indiquant que le telechargement est effectué.

Je cherche à proteger l'url du fichier a dl .. il ne faut pas que l'utilisateur puisse la retrouver dans le code ...

Si vous aviez des idées ?
merci par avance
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h23   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par kvndevils
Salut tout le monde,
Voila je cherche un moyen pour lancer le telechargement d'un fichier à l'ouverture d'une page de transition ..

Je m'explique :
L'utilisateur clic sur un lien "telecharger" > une page temporaire s'ouvre et lance le telechargement (fenetre avec enregistrer sous ...) puis redirige automatiquement le user > l'utilisateur arrive sur une page lui indiquant que le telechargement est effectué.

Je cherche à proteger l'url du fichier a dl .. il ne faut pas que l'utilisateur puisse la retrouver dans le code ...

Si vous aviez des idées ?
merci par avance
Grace au header tu peux faire croire ce que tu veux au navigateur. Ce dernier fait confiance aveugle au serveur.
En gros, admettons que le fichier à telecharger se nomme 64584.php mais au navigateur ça sera toto.zip. Donc si le mec tape www.domaine.gd/toto.zip en théorie il ne le trouvera pas.


Autre exemple : le lien de telechargement tu peux l'appeler ainsi telechargement.php?idfichier=458545 ceci va telecharger le bon fichier.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h34   #3
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Mais si je modifie les infos du header je suis bloqué dans la page non ?

Quel est le fonctionnement lorsque l'on clique sur une page telecharger.php?iddoc=344 par exemple

la page telecharger contient un header de ce type ? (code trouver dans le forum) ..

Code :
1
2
3
4
5
6
7
8
9
10
11
<? 
...
 
header("Content-disposition: attachment; filename=$nomfichier");
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: $type\n");
header("Content-Length: ".filesize($fichier)); 
header("Pragma: no-cache"); 
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public"); 
header("Expires: 0"); 
?>
as tu des pages de doc car je ne trouve pas sur developpez pourtant d'apres les posts des autres membres il semblerait qu'il y ait ..

merci de ton aide
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h37   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par kvndevils
Mais si je modifie les infos du header je suis bloqué dans la page non ?

Quel est le fonctionnement lorsque l'on clique sur une page telecharger.php?iddoc=344 par exemple

la page telecharger contient un header de ce type ? (code trouver dans le forum) ..

Code :
1
2
3
4
5
6
7
8
9
10
11
<? 
...
 
header("Content-disposition: attachment; filename=$nomfichier");
header("Content-Type: application/force-download"); 
header("Content-Transfer-Encoding: $type\n");
header("Content-Length: ".filesize($fichier)); 
header("Pragma: no-cache"); 
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public"); 
header("Expires: 0"); 
?>
as tu des pages de doc car je ne trouve pas sur developpez pourtant d'apres les posts des autres membres il semblerait qu'il y ait ..

merci de ton aide
la tu force le telechargement du fichier. mais il faut utiliser la fonction read(chemin du fichier juste en dessous). Dans filename du header tu peux placer ce que tu veux comme nom c'est ça que le navigateur va lire.
header("Content-Length: ".filesize($fichier)); c'est pour avoir la barre de progression comme ça il connait la taille du fichier total.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h39   #5
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Je viens de trouver dans la FAQ
http://php.developpez.com/faq/?page=...rotectdownload

Par contre, pour un code de ce type :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if(!empty($_GET["id"])){
    $conn=mysql_connect('host','user','mot de passe');
    mysql_select_db('la bd',$conn);
    $res=mysql_query("select path from files where id=".$_GET["id"]) or die(mysql_error());
    if(mysql_num_rows($res)!=0){
        $row=mysql_fetch_object($res);
        header("Content-type: application/force-download");
        header("Content-Length: ".filesize($row->path));
        header("Content-Disposition: attachment; filename=".basename($row->path));
        readfile($row->path);
    }
}
?>
Le script appelé sur une page isolée s'arrete ici non ?
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 17h45   #6
Invité régulier
 
Inscription : février 2005
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 39
Points : 7
Points : 7
Nikel ca marche merci t'es un boss
kvndevils est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2006, 18h16   #7
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par kvndevils
Nikel ca marche merci t'es un boss
Je le savais déjà
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h48.


 
 
 
 
Partenaires

Hébergement Web