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 [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 55
    Par défaut upload
    Bonjour,

    je veux uploader des fichiers.xsl et les enregistrer avec leurs versions dans la base de données,c'est pour ca j'ai ajouté dans mon code une variable $version et je l'incrémente lors de chaque upload mais je vois toujours que le version 1 et je ne sais pas c'est quoi le probleme voila mon code n'hésitez pas a m'aider :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    $document = new Document();
            $form = $this->createFormBuilder($document)        
            ->add('file', 'file',array(
                  'label'=>'PP5'))        
            ->getForm();        
            $request = $this->getRequest();
            $id=$request->get('id');
            $type=$request->get('type');
            $avv = $this->getDoctrine()->getRepository('MyAppAvvBundle:Avv')->find($id);
            $a=$avv->getprojet();
            for($i=0;$i<20;$i++ ){
            	$version= 0;
            	$version++;
            	var_dump($version);
     
            }
           // $chemin=$this->container->getParameter('chemin');
            //var_dump($chemin);
            //die();
            $rep =__DIR__.'/../../../../web/'.'uploads/documents/'.$a.'/';  
     
            //$lockFile = $rep."//fichier.lock";
            $lockFile = $rep.$a."_".$type.".lock";        
            //$nom_lock=$a."_".$type.".lock";
            $hasLock = is_file($lockFile);
            if($request->getMethod() == "POST")
            {
                $form->bindRequest($request);
                if($form->isValid())
                {
     
                    $em = $this->container->get('doctrine')->getEntityManager();
                    $nom_file=$a.'_'.$type.'-'.$version.'.xlsm';
                    $document->setAvv($avv);
                    $document->setFile($nom_file);
                   //$document->upload();      
     
                    //$dir=__DIR__.'/../../../../web/'.'uploads/documents/'.'/'.$avv->getProjet();
                    $form['file']->getData()->move($rep,$nom_file);
                    $em->persist($document);
                    $em->flush();        
                    unlink($lockFile);
                   }
            }
            $hasLock = is_file($lockFile);
            return $this->container->get('templating')->renderResponse('MyAppAvvBundle:Default:PP5.html.twig', array
                    ('form' => $form->createView(),
                     'var' => $id,
                     'hasLock' => $hasLock
                    ));
    Merci d'avance.

  2. #2
    Expert confirmé

    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
    Par défaut
    t'as boucle est fausse, tu met la valeur a 0 a chaque tour
    le numéro de version est dans la base ?

    par contre faut pas faire de l'upload direct dans le dossier web

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 55
    Par défaut
    Merci pour ta reponse,en fait y a pas un champ version dans la base de donnée il y a que le nom de file qui contient le numero de version voila mon code apres la modif:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    $document = new Document();
            $form = $this->createFormBuilder($document)        
            ->add('file', 'file',array(
                  'label'=>'PP5'))        
            ->getForm();        
            $request = $this->getRequest();
            $id=$request->get('id');
            $type=$request->get('type');
            $avv = $this->getDoctrine()->getRepository('MyAppAvvBundle:Avv')->find($id);
            $a=$avv->getprojet();
            for($i=0;$i<20;$i++ ){
            	$version=1;
            	$version=$version+$i;
            	var_dump($version);
     
            }
           // $chemin=$this->container->getParameter('chemin');
            //var_dump($chemin);
            //die();
            $rep =__DIR__.'/../../../../web/'.'uploads/documents/'.$a.'/';  
     
            //$lockFile = $rep."//fichier.lock";
            $lockFile = $rep.$a."_".$type.".lock";        
            //$nom_lock=$a."_".$type.".lock";
            $hasLock = is_file($lockFile);
            if($request->getMethod() == "POST")
            {
                $form->bindRequest($request);
                if($form->isValid())
                {
     
                    $em = $this->container->get('doctrine')->getEntityManager();
                    $nom_file=$a.'_'.$type.'-'.$version.'.xlsm';
                    $document->setAvv($avv);
                    $document->setFile($nom_file);
                   //$document->upload();      
     
                    //$dir=__DIR__.'/../../../../web/'.'uploads/documents/'.'/'.$avv->getProjet();
                    $form['file']->getData()->move($rep,$nom_file);
                    $em->persist($document);
                    $em->flush();        
                    unlink($lockFile);
                   }
            }
            $hasLock = is_file($lockFile);
            return $this->container->get('templating')->renderResponse('MyAppAvvBundle:Default:PP5.html.twig', array
                    ('form' => $form->createView(),
                     'var' => $id,
                     'hasLock' => $hasLock
                    ));
    Merci

  4. #4
    Expert confirmé

    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
    Par défaut
    la boucle ne sert a rien, autant regarder $i direct, et si ça dépasse 20 ?
    utilise plutôt le Finder, pour trouver le dernier numéro

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 55
    Par défaut
    comment j'incremente la version sans utiliser la boucle?

  6. #6
    Expert confirmé

    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
    Par défaut
    Citation Envoyé par Mme Idel Voir le message
    comment j'incremente la version sans utiliser la boucle?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($version=0;$version<20;$version++ ){
    mais utilise le Finder

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

Discussions similaires

  1. Probleme d'upload
    Par FreshVic dans le forum Struts 1
    Réponses: 10
    Dernier message: 22/05/2006, 17h15
  2. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52
  3. Réponses: 10
    Dernier message: 18/11/2003, 18h01
  4. [servlet]upload en java
    Par dash dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 31/10/2003, 11h13
  5. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25

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