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 :

[Upload] Besoin aide sur download de fichiers


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Par défaut [Upload] Besoin aide sur download de fichiers
    Bonjour,

    Je voudrais faire un site où les visiteurs peuvent téléchargeer des fichiers (mpeg,wmv...). Je ne sais pas du tout comment procéder, quelles fonctions de php utilisées. Mes recherches sur le net ne donnent rien, je ne trouve que des explications sur le Upload de fichiers mais rien sur le Download. Qq1 peut-il me donner une idée ou m'éclairer? Merci.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    Pour télécharger un fichier, il suffit de faire un lien vers le fichier ^^
    <a href="monfichiermpeg.mpeg">telecharger</a>

    Cependant, il se peut que le navigateur tente d'ouvrir le fichier au lieu de proposer le téléchargement de celui-ci.
    Dans ce cas il faut jouer avec les types mimes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    header("content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=".$tonfichier);
    flush();
    readfile($tonfichier);
    Tu as tout un tas de type mime, la je t'ai mis un exemple avec octet stream, mais tu as aussi: /application/msword pour les applications words, ou text/plain pour des fichiers textes etc...

  3. #3
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Bonjour,

    Je me permet de poster à la suite de ce poste. J'ai crée un script permettant de créer des documents ( stocké la ou est le serveur web ) et je voudrais que les utilisateur de mon site puissent télécharger le document que le script PHP leur a généré.

    Avec la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="fichier">dl</a>
    Cela marche, mais je ne veux pas qu'on puisse voir d'ou provienne le fichier.

    Et si j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    header("content-type: application/ms-word");
    header("Content-Disposition: attachment; filename="fic.doc");
    flush();
    readfile("generation/doc/fic.doc");
    Word m'ouvre un document avec du charabia dedans.

    J'ai testé plusieurs "content-type" différent pour toujours le même résultat.

    Un peu d'aide de votre part me serait très précieuse

  4. #4
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Je viens de trouver une solution mais j'ai tout de même un soucis.

    La solution :

    Page qui génère le document word :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    // génération de word
    // crée un fichier test.doc
    echo "<a href=\"code.php?file=test.doc\">telecharger</a>";
    ?>

    Page code.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
     
    <?php
    $file=$_GET['file'];
    $taille=filesize("Word/$file");
    header("Content-Type: application/force-download; name=\"$file\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $taille");
    header("Content-Disposition: attachment; filename=\"$file\"");
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    readfile("Word/$file");
    exit();
    ?>
    Avec ceci, lorsque je suis avec Mozilla je n'ai aucun soucis, tout marche bien !

    Le seul soucis et c'est un gros soucis c'est qu'avec ie cela plante :

    Internet Explorer ne peut télécharger code.php?file=test.doc de 192.xxx.xxx.xx
    Internet Explorer n'a pu ouvrir ce site Internet. Le site requis n'est plus disponible ou n'a pas pu être trouvé.
    Réessayé ultérieurement.

    Si vous pouviez m'indiquer ce que n'aime pas ie dans le code car je ne comprend pas pourquoi cela ne fonctionne pas !

    Merci d'avance

  5. #5
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Bon en faite ie n'aime pas les deux lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    Ce qui donne comme code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $file=$_GET['file'];
    $taille=filesize("Word/$file");
    header("Content-Type: application/force-download; name=\"$file\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $taille");
    header("Content-Disposition: attachment; filename=\"$file\"");
    header("Expires: 0");
    //header("Cache-Control: no-cache, must-revalidate");
    //header("Pragma: no-cache");
    readfile("Word/$file");
    exit();
    ?>
    Voila si ca peut servir à quelqun d'autre

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Par défaut
    Merci pour vos réponses ça marche. En fait j'étais trop plongé dans php pour regarder du coté HTML .

    a +

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

Discussions similaires

  1. besoin aide sur les fichier en c++
    Par windowsxx2001 dans le forum Débuter
    Réponses: 2
    Dernier message: 22/11/2007, 18h01
  2. besoin Aide sur Gestion d'erreur dasn un DTS
    Par blowlagoon dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 27/09/2006, 09h15
  3. creation 1ere base - besoin aide sur liens
    Par PASFACILE dans le forum Access
    Réponses: 10
    Dernier message: 03/09/2006, 21h01
  4. [HTML] Besoin aide sur scroll et balise
    Par Kerod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/03/2005, 15h42
  5. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 13h02

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