IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lancer automatiquement le telechargement d'un fichier avant une redirection


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    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

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 513
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 513
    Par défaut
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 513
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 513
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Par défaut
    Je viens de trouver dans la FAQ
    http://php.developpez.com/faq/?page=...rotectdownload

    Par contre, pour un code de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Par défaut
    Nikel ca marche merci t'es un boss

  7. #7
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 513
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 513
    Par défaut
    Citation Envoyé par kvndevils
    Nikel ca marche merci t'es un boss
    Je le savais déjà

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer automatiquement un script en runlevel 1 (après une commande "init 1")
    Par danfra dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 14/05/2015, 12h31
  2. Réponses: 8
    Dernier message: 07/10/2011, 18h09
  3. Réponses: 2
    Dernier message: 07/11/2009, 17h46
  4. [PHP 5.1] Fermeture d'une connexion avant une redirection.
    Par marcandre dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2009, 16h04
  5. Réponses: 9
    Dernier message: 30/06/2008, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo