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 :

telecharger un fichier en paramètre [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 53
    Points
    53
    Par défaut telecharger un fichier en paramètre
    Bonjour,

    Je cherche à proposer un lien pour télécharger un fichier après un certain traitement.

    Voici mon script:

    script1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    header("Content-disposition: attachment; filename=$fichier_a_telecharger"); 
    header("Content-Type: application/force-download"); 
    header("Content-Length: ".filesize($chemin . $fichier_a_telecharger)); 
    header("Pragma: no-cache"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
    header("Expires: 0"); 
    readfile($chemin . $fichier_a_telecharger); 
     
    ?>

    et dans un autre script j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"script1.php?fichier_a_telecharger=$monfichier_cible/\">Télécharger le fichier</a>" .'<br />';

    Avec ce code lorsque je clique sur le lien pour télécharger: c'est mon script 'script1.php' qui est téléchargé.

    qu'est ce que j'aurais du rater dans ce code??


    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $chemin et $fichier_a_telecharger ne sont pas définis.

    Il faut de plus impérativement filtrer les données reçus, sinon il devient possible d'obtenir n'importe quel fichier de ton serveur.
    par exemple : script1.php?fichier_a_telecharger=../.htpassword.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    merci pour votre réponse.


    Même si je n'ai pas bien compris (le fichier à télécharger se trouve dans le même répertoire que 'script1.php' et le nom du fichier sera fourni en paramètre), j'ai essayé d'ajouter au début de mon script mais sans amélioration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fichier_a_telecharger = "";
    $chemin = ".";

    possible de m'aider SVP ou de me rediriger vers un lien qui traite ce cas.


    Merci.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    je reviens vous m'aider:

    ---Fichier telecharger.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    $chemin  = 'fichiers_factures/';
     
    $fichier_a_telecharger =  'facture380.xml';
     
     
    header("Content-disposition: attachment; filename=$fichier_a_telecharger"); 
    header("Content-Type: application/force-download"); 
    header("Content-Transfer-Encoding: $type\n");
    header("Content-Length: ".filesize($chemin . $fichier_a_telecharger)); 
    header("Pragma: no-cache"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public"); 
    header("Expires: 0"); 
    readfile($chemin . $fichier_a_telecharger); 
     
    ?>

    ---Fichier : test.php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id="lien"> 
    <?php 
     
    $monfichier_cible = 'facture380.xml';
     
    echo "<a href=\"telecharger.php?fichier_a_telecharger=$monfichier_cible/\">Télécharger le fichier</a>" .'<br />';
     
     
    ?>
    </div>

    ---Si je teste avec le fichier php.test ça marche.

    ---je construit mon fichier xml dans la page: construire_fichierxml.php

    dans cette page je fais une copie le contenu de test.php dans construire_fichierxml.php

    mais ça me génère le message d'erreur:

    "Warning: Cannot modify header information - headers already sent by (output started at /htdocs/public/www/ApplicationTransfertVersXML/services/telecharger.php:2)......."

    Merci d'avance.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    J'ai pu corriger l'erreur grâce à ces indications.

    Merci beaucoup et désolé pour le dérangement.

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

Discussions similaires

  1. Wget - télécharger des fichiers non-html
    Par narmataru dans le forum Réseau
    Réponses: 10
    Dernier message: 14/07/2018, 15h20
  2. Réponses: 7
    Dernier message: 29/09/2005, 10h19
  3. [Telechargement de Fichier] Recherche balise adéquate
    Par Kylen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/09/2005, 15h21
  4. telecharger un fichier
    Par mokha8581 dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2005, 14h15
  5. [VB6] Télécharger un fichier avec VB 6
    Par lechevbt dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 18/02/2004, 20h05

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