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 :

download un .doc depuis un serveur


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut download un .doc depuis un serveur
    Salut les amis !!!
    Ma question a deux volets et j'ai urgement besoin de votre aide,en fait je travaille sur le upload et le download entre deux machines en rx.
    -premierement j'ai pu recuperer les fichiers du disque dur serveur pr les afficher ds une listebox client,ceci pr faciliter le telechargement aux utilisateurs,mais lorsque je fais ceci :
    $fich=$_POST['fact'];

    echo("<a href='download-doc.php?file=".$fich."'> telecharger </a>");

    Je constate que ds ma variable $fich le nom de fichier ne s'y trouve pas et la preuve en est que la fenetre download qui s'affiche devant moi ne me montre pas le nom du fichier.
    J'aimerai savoir quoi faire a se niveau.

    -Deuxiemement: lorsque je remplace "$_POST['fact']" par le nom d'un fichier du disque dur serveur cad :
    $fich= 'Accueil.pdf';
    le telechargement se fait normalement pr tous les fichiers sauf ceux de la famille office,voici mon fichier download.php:
    <?php
    $dir='C:\willy\*';
    if (isset($_REQUEST["file"])) {
    $file=$dir.$_REQUEST["file"];
    header("Content-type: application/force-download");
    header("Content-Transfer-Encoding: Binary");
    header("Content-length: ".filesize($file));
    header("Content-disposition: attachment; filename=\"".basename($file)."\"");
    readfile("$file");
    } else {
    echo "No file selected";
    }
    ?>

    SVP les gars un coup de main.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    premierement, si tu écris un lien (et non un formulaire avec method="post") comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<a href='download-doc.php?file=".$fich."'> telecharger </a>");
    Pour récuperer la valeur $fich dans le fichier download-doc.php, il faudra écrire : $_GET['file']. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = $_GET['file'];
    Commence déjà par ça...

    Sinon dans ton code de download, écris plutot le Content-Type de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: application/octet-stream');
    Et troisièmement, utilise les balises [code ][ /code] (sans les espaces)

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut download fichier
    Merci deja pr ta reponse.
    j'ai essaye le:
    $fich= $_GET['fact'];
    mais jusque la aucune reponse positive, le comportement est le meme qu'avec le $_POST.et j'ai remplace le :
    header("Content-type: application/force-download"); par
    header('Content-Type: application/octet-stream');

    mon fichier est bien telecharge mais son contenu est illisible,je precise que meme avec le force-download le fichier est aussi telecharge sauf ke ds les deux cas le contenu est illisible.
    Merci beaucoup pour aide

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    lol... mais si t'as pas de fichier, il risque pas de te télécharger quelque chose... y'a juste que force-download, force le serveur à envoyer qqch à télécharger mais forcément... y'a rien -_-'

    Si t'as pas fichier, faut pas aller plus loin, ça sert à rien !!!

    bref, arrête de changer de nom pour tes variables dans ton 1ier post tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<a href='download-doc.php?file=".$fich."'> telecharger </a>");
    alors pourquoi tester $_GET['fact'] ?

    Je te conseille de relire un peu la documentation des variables globales...

    Si tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<a href='download-doc.php?file=".$fich."'> telecharger </a>");
    ça te renverra une URL du genre :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.tondomaine.ext/tonfichier.php?file=nomdufichier

    la variable $_GET a tester est donc "file" ====> $_GET['file']

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut download fichier
    Merci enkor pour tes reponses rapides.
    Crois moi j'ai bel et b1 ces fichiers au du repertoire C:\willy du disque dur serveur,la preuve en est que je parviens a telecharger tous autres fichiers de ce rep sauf ceux de la famille office et je te comprends b1 quand tu dit que force-download c'est juse pour forcer le telechargement meme lorsque aucun fichier n'existe,je l'ai dc mis de cote.
    Concernant $_GET et $_POST,quelque chose me preoccupe comme je t'ai j'ai pu recuperer les noms de fichier du DD serveur pour les affcicher dans une listebox au niveau du client.lorsque dans ma variable fich je met le nom meme d'un fichier cad:
    $fich='accueil.doc';
    une fenetre de telechargement s'affiche et me precise b1 que c'est le fichier accueil.doc qui sera telecharge avec l'icone de word.mais par contre lorsque je veux recuperer un nom de facon automatique(le nom que le user a choisi) :
    $fich= $_GET['file'];
    la fenetre ne precise rien.
    Merci beaucoup pour tn aide.

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    1] c'est horrible de lire ce que tu écris. Essaye d'espacer ton texte, d'utiliser les balises etc et surtout stop au langage sms

    2] tu parles de lien et de nom statique puis de lien avec un nom choisi par l'utilisateur.... ça n'a aucun sens... le nom d'un fichier qui se trouve quelque part ne peut pas être choisi au téléchargement de cette façon...

    Ce qui peut-être fait c'est ceci :
    - admettons un fichier sur un serveur s'appelant : fichier.ext
    - l'utilisateur souhaite télécharger le fichier, tu forceras peut-être un nom plus intelligent et dynamique du genre : categorie-YYYMMDD.ext sans que l'utilisateur ait à le changer lui-même.
    Voilà qui est possible ! Est-ce que tu souhaites faire ?

    PS : Pour télécharger un fichier, y'a pas besoin de faire un script de download normalement (mis à part pour certains types de fichier), pointe simplement dessus avec un lien et ça téléchargera automatiquement. Vu tes connaissances en PHP, ça sera déjà un bon début...
    Commence par les bases, et maitrise les $_GET et $_POST avant de passer à quelque chose de trop compliqué

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Par défaut download fichier
    Salut !! j'essaierai d'eviter le language sms,c'est beaucoup plus un reflexe que volontaire.
    si je veux passer par la methode que tu preconises,
    aurais-tu un bout de code,un tuto ou un lien qui me faciliterai la tache
    merci encore.

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

Discussions similaires

  1. [MySQL] Download une image depuis mon serveur de référence dans ma BD mysql
    Par aymas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/02/2014, 19h18
  2. Réponses: 0
    Dernier message: 19/02/2014, 11h14
  3. Réponses: 6
    Dernier message: 24/02/2011, 11h37
  4. download de fichier depuis un serveur web
    Par minusette dans le forum Modules
    Réponses: 9
    Dernier message: 14/10/2005, 09h10
  5. [VB.NET] Download de fichiers sur un serveur...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/05/2004, 10h25

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