unpload de fichier dans le backend joomla 3.2.3

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • unpload de fichier dans le backend joomla 3.2.3

    bonjour,
    voila cela fait un bon moment que je rame en vain , je cherche à télécharger un fichier pdf mais ça marche pas...pourriez vous m'aider svp, c'est dans le cadre d'un stage et le temps presse vraiment.
    voici mon code:
    dans le fichier xml:
    Code HTML:
     <field
    			description="selectionner le fichier a charger"
                            name="bulletin_path"
                            type="file"
    		        class="fileuploader"
    			label="Fichier" 
    						
                    />
    mon contrôleur:
    Code PHP:
    class BulletinControllerBulletin extends JControllerForm
    {
         function 
    save()
        {    
            
    //importation de la librairie filesystem
            
    jimport('joomla.filesystem.file');
            
            
    $jinput JFactory::getApplication()->input;
        
            
    $jFileInput = new JInput($_FILES);
            
    $file $jFileInput->get('jform',array(),'array');
            
            
    $filename =JFile::makeSafe($file['name']['bulletin_path']);
            
    $src$file['tmp_name']['bulletin_path'];
            
    $dest== JPath::clean(JPATH_COMPONENT DIRECTORY_SEPARATOR $filename);
            
            
            
    JFile::upload$src$dest );
        
            
    $data$file['name']['bulletin_path']; 
                        
                
                
    $jinput->set('jform',$data);
            
            
            return 
    parent::save();
        }
        

    merci par avance

  • #2
    Re : unpload de fichier dans le backend joomla 3.2.3

    Bonjour,

    je ne suis pas sûr de comprendre ce que tu souhaites faire (peut être peux tu donner plus d'info) mais pour gérer des fichiers avec Joomla!, voir des extensions comme JCE ou PhocaDownload.
    Pour apprendre à construire votre site web avec Joomla 3 : Joomla3! Le Livre Pour Tous : http://cinnk.com/joomla/3/le-livre-pour-tous

    Référencement Joomla! 10 astuces pour référencer son site web https://cinnk.com/articles/referencement-joomla-10-astuces-pour-referencer-son-site-web

    Créez votre boutique en ligne avec Joomla! & HikaShop http://cinnk.com/boutique/livres/cre...la-et-hikashop

    Commentaire


    • #3
      Re : unpload de fichier dans le backend joomla 3.2.3

      merci SimonG pour la réponse, enfaite je crée mon propre composant, et j'ai besoin de faire un upload de fichier pdf dans le backend pour les afficher par la suite sous forme de liens dans le fronend... donc le form est bien mis en place, je selectionne le fichier, mais quand je fais sauvegarder, j'ai l'erreur: attention le fichier n'est pas déplacé...biens que les informations des autres fiels sont enregistrer dans la BD et ça me crée un nouveau élément.
      en gros, j'ai rajouté les fields dans le fichier xml de form, et j'ai crée la fonction save() dans le contrôleur pour l'upload du fichier, je pense que c'est mes paramêtre de fichier à charger que j'arrive pas à récupérer correctement.

      merci de m'aider
      cordialement

      Commentaire


      • #4
        Re : unpload de fichier dans le backend joomla 3.2.3

        Bonjour,

        Un message "attention le fichier n'est pas déplacé..." indique que le fichier a bien été uploadé, donc que le code est correct, mais que PHP ne peut le déplacer vers son répertoire cible, soit parce qu'il y a un problème de droits sur ce dernier, soit parce que le répertoire cible n'a pas été créé.
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : unpload de fichier dans le backend joomla 3.2.3

          bonjour,
          merci jisse03 pour votre réponse, non c'était pas le cas, le fichier ne se charger pas, mais ça y est j'ai trouvé!
          enfaite c'était un problème de paramètres que j'ai mal récupéré depuis mon $jinput, et du coup la source(le dossier tmp) n'était pas bien référencé, enfaite il suffit juste d'ajouter une fonction save() dans le controlleur comme suit :
          Code PHP:
           function save()
              {    
                  
          //importation de la librairie filesystem
                  
          jimport('joomla.filesystem.file');
                  
          jimport'joomla.filesystem.folder' );
                  
                           
          //récupérer les informations de la requête
                  
          $jinput JFactory::getApplication()->input;
              
                          
          //récupérer les information des de jform
                  
          $array1=$jinput->get('jform'NULLNULL);
                  
                          
          //verifier si le dossier destination existe sinon en créer un
                  
          if ( !JFolder::existsJPATH_COMPONENT DIRECTORY_SEPARATOR "dossier" ) )
                  {
                                    
          JFolder::createJPATH_COMPONENT DIRECTORY_SEPARATOR "dossier" );
                  }
                  
                      
          $filename=$_FILES['jform']['name']['nom de l'input'];
                      $fileTempPath=$_FILES['
          jform']['tmp_name']['nom de l'input'];
                      
          $upLoadPath JPATH_COMPONENT '/' 'dossier' '/' $filename;
                      if(
          JFile::upload($fileTempPath,$upLoadPath))
                      {
                          echo 
          "upload success";
                      } 
                      else
                      {
                          echo 
          "upload faillure";
                          
                      }
                  
          ///on peut ajouter des traitement ici
                  ////ajouter le chemin du fichier au tableau $jform avec 'array_merge' puis le poster avec la methode 
                          ////'POST'  pour pouvoir le récupérer par le model et l'insérer dans la base de donnée
                  
                  
          $filepath=array('nom de l'input'=>$upLoadPath);
                  
                  $mergedArray = array_merge((array)$array1, (array)$filepath);
                  
                  $jinput->post->set('
          jform',$mergedArray);
                      
                  return parent::save();
                  
                  
              } 
          bien cordialement
          Dernière édition par tryagain à 27/05/2014, 00h18

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X