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

MVC PHP Discussion :

Créer un lien pour télécharger un fichier [ZF 1.7]


Sujet :

MVC PHP

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut Créer un lien pour télécharger un fichier
    Bonjour,

    C'est le matin et je suis mal éveillé, je crée un fichier sur mon application et je voudrais le télécharger.

    mon code est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <a href="<?php echo $this->link ?>">Cliquez ici</a>
    et cela pointe vers 'localhost/site/html/repTmp/fichier.txt'

    Naturellement, il me répond que 'html', n'est pas un controller valide.

    Comment faire ce genre de lien ?

    merci.

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Dans ton fichier .htaccess, il te suffit de dire que les fichiers dont l'extension est .txt ne sont pas gérer par le MVC.

    Voici mon fichier .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
    Tu peux le modifier ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|css|txt)$ index.php
    J'en profite pour donner une astuce aux internautes. J'ai vu des internautes utiliser des fichiers php en lieu et place de leurs feuilles de styles. Pour que cela marche encore quand on utilise un modèle MVC, il suffit de donner l'extension php5 à ces fichiers et de dire au MVC de ne pas traiter ces fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|css|txt|php5)$ index.php
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Merci.

    Est-ce la seule solution ?

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Autre possibilité, tu peux créer un contrôleur qui va envoyer le fichier en streaming. Avantage de cette méthode, tu peux contrôler la vitesse de téléchargement si le fichier est volumineux. Attention néanmoins à l'aspect sécurité. Il faut bien vérifier qu'on ne puisse pas via les paramètres modifier le fichier à télécharger, sinon quelqu'un pourrait récupérer des fichiers de configuration avec des mots de passes par exemple.

    Par contre, je ne sais pas comment faire pour forcer le téléchargement et que le navigateur ne t'affiche pas le résultat.
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Autre solution : dire à apache de ne pas rediriger les adresses correspondant à un fichier existant (au lieu de lister les extensions autorisées) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* index.php

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/06/2012, 11h21
  2. Créer un lien pour télécharger un fichier, et non l'afficher
    Par boubou38 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/04/2012, 22h36
  3. Un lien pour télécharger un fichier ne marche pas
    Par Marin d'Eau Douce dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/10/2011, 16h57
  4. [MediaWiki] Créer un lien pour télécharger un fichier ?
    Par byloute dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 07/08/2008, 14h07
  5. lien pour télécharger
    Par Kaimann dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/10/2004, 12h05

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