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

Symfony PHP Discussion :

Upload des fichiers vers 4 chemins différents


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut Upload des fichiers vers 4 chemins différents
    Bonjour;

    Dernier soucis pour finir mon application sf2, a partir de la doc officielle j'ai pu réaliser ses méthodes qui permet l'upload d'un fichier !!

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public function getWebPath()
        {
            return null === $this->file ? null : $this->getUploadDir().'/'.$this->file;
        }
     
        protected function getUploadRootDir()
        {
     
            return __DIR__.'/../../../../web/'.$this->getUploadDir();
        }
     
        protected function getUploadDir()
        { 
          // chemin de sauvegarde 
            return 'Test';
        }
        public function uploadFile()
        {
     
            $this->file->move($this->getUploadRootDir(), $this->file->getClientOriginalName());
     
     
            $this->file = $this->file->getClientOriginalName();
     
     
            //$this->file = null;
        }
     
        public function removeFile()
        {
            if ($file = $this->getWebPath()) {
                unlink($file);
            }
        }
    Le seul chemin de sauvegarde des fichiers c'est (enfait c'est juste un test) or mon application prévoit 4 chemins déffirents qui sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Symfony/web/App/Application1/Media/Image
    Symfony/web/App/Application2/Media/Image
    Symfony/web/App/Application3/Media/Image
    Symfony/web/App/Application4/Media/Image
    ca revient a définir le chemin avec une variable (nom de l'appli) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Symfony/web/App/$nomApplication/Media/Image
    Quelqu'un peut m'aider a réaliser cela ?

    Merci d'avance.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    je connais pas trop sf mais déjà ça c'est très moche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
    c'est plus esthétique comme cela ( en partant du répertoire de base )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return dirname(__FILE__).'/web/'.$this->getUploadDir();
    Conception / Dev

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Citation Envoyé par ascito Voir le message
    je connais pas trop sf mais déjà ça c'est très moche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
    c'est plus esthétique comme cela ( en partant du répertoire de base )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return dirname(__FILE__).'/web/'.$this->getUploadDir();
    je désapprouve, ce n'est pas équivalent et c'est moins élégant.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par ascito Voir le message
    je connais pas trop sf mais déjà ça c'est très moche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
    c'est plus esthétique comme cela ( en partant du répertoire de base )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return dirname(__FILE__).'/web/'.$this->getUploadDir();
    ton code ne fais pa la même chose, ton chemin est incorrect

    de plus dirname(__FILE__) reviens a faire __DIR__ mais moins optimisé

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    aitiahcene > tu veux copier 4 fois le fichiers ?

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    méaculpa alors, mais "/../../../../", ca me choquait...
    Conception / Dev

  7. #7
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Par contre ca c'est très moche, tu risque de chopper des erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return '$this->Test';

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    aitiahcene > tu veux copier 4 fois le fichiers ?
    Non je veux copier le fichier dans le dossier qui convient suivant le nom de l'application soit vers : Symfony/web/App/Application1/Media/Image ou
    Symfony/web/App/Application2/Media/Image ..etc

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Citation Envoyé par Avrel Voir le message
    Par contre ca c'est très moche, tu risque de chopper des erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return '$this->Test';

    Oui j'ai fais une bêtise la

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Non je veux copier le fichier dans le dossier qui convient suivant le nom de l'application soit vers : Symfony/web/App/Application1/Media/Image ou
    Symfony/web/App/Application2/Media/Image ..etc
    tu le récupère ou le ApplicationX ?

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Justement mon entité : n'a pas un getApp () mais pour être claire mon entité s'appelle Media.php qui a une clé étrangère "idPoi" vers une entité Poi.php qui possède une clé étrangère "idApp" vers une entité App.php qui définie le nom de l'application !! je peux la récupérer avec getIdApp () de Poi.php ?

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Justement mon entité : n'a pas un getApp ()
    fais en une, c'est que ton magging est mal fais

  13. #13
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Oui je ne l'ai su qu'a la fin, je vais définir une clé étrangère dans ma table qui va posséder une clé étrangère vers la table app ainsi je refaire le mapping objet et avoir une méthode qui pourra récupérer le nom de l'Application X ?? as tu une suggestion ?

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Oui je ne l'ai su qu'a la fin, je vais définir une clé étrangère dans ma table qui va posséder une clé étrangère vers la table app ainsi je refaire le mapping objet et avoir une méthode qui pourra récupérer le nom de l'Application X ?? as tu une suggestion ?
    t'as déjà une clé c'est idPoi, finalement tu devrai même pas avoir de méthode getIdPoi dans ton entité mais getApp lié a idPoi

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    finalement tu devrai même pas avoir de méthode getIdPoi dans ton entité mais getApp lié a idPoi
    Oui pas de getApp () pour récupérer les 4 noms des applications !! faut que je définis une relation avec la table app !!

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Oui pas de getApp () pour récupérer les 4 noms des applications !! faut que je définis une relation avec la table app !!
    la relation existe déjà, faut la mettre dans ton mapping

  17. #17
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Tu peux ajouter un attribut application que tu initialise dans ton constructeur et que tu enverra donc au moment ou tu instancie ta classe.

    Entité :
    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
     
    class Media{
    ...
    private $idApp;
     
    function __construct($idApp){
     $this->idApp = $idApp;
    }
    //Getter
    //Setter
    ...
     
    protected function getUploadDir()
        { 
            return 'App/Application'.$this->idApp.'/Media/Image';
        }
    }
    Controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $media = new Image($poi->getApp()->getId());

Discussions similaires

  1. [VB.NET]upload de fichier vers un serveur
    Par damaskinos dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/10/2013, 19h20
  2. Réponses: 14
    Dernier message: 14/03/2007, 19h32
  3. uploader un fichier vers un serveur http
    Par Zorgloub dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 26/04/2006, 11h41
  4. upload des fichiers
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/04/2006, 07h02
  5. Uploader des fichiers via ssh
    Par Michaël dans le forum Réseau
    Réponses: 3
    Dernier message: 13/05/2005, 20h47

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