Enregistrement nom de fichiers dans la base de données

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

  • Enregistrement nom de fichiers dans la base de données

    Bonjour,

    Cela fait deux jours que je tourne en rond, je me décide donc à poser ma question.

    Je conçois actuellement un formulaire permettant aux utilisateurs de remplir un formulaire, avec des champs textes, mais également des fichiers à uploader.

    Pour cela, mon contrôleur (JControllerForm) appelle la fonction save(). Dans save(), je comprends bien que je peux ajouter l'upload des fichiers, ce qui fonctionne.
    Si je comprends bien, save() appelle store() qui procède à l'enregistrement des champs de jform dans $_POST, mais ne procède à aucune enregistrement pour les noms des fichiers uploadés.

    C'est là mon problème, je ne comprends pas comment enregistrer le nom des fichiers dans la base de données. Où et quand puis-je y procéder ?

    Merci pour vos réponses.

    Seb

  • #2
    Re : Enregistrement nom de fichiers dans la base de données

    Tres delicat comme question, n'ayant aucune indication sur la methode.

    Je ne sais pas si c'est la meilleure solution ou bien optimiser pour joomla, mais j'irai regarder la variable $_FILES en plus du $_POST.

    ++
    Wis

    Commentaire


    • #3
      Re : Enregistrement nom de fichiers dans la base de données

      Bonjour,

      En effet, toutes les données se trouvent dans $_FILES, mais l'API permet d'enregistrer le formulaire sans y accéder directement accès.

      Pour cela, le controller de type JControllerForm surcharge la méthode save()

      Code:
      public function save($key = null, $urlVar = 'a_id')
      	{	
      		$currUser = JFactory::getUser();
      		if ($currUser->guest)
      		{
      			JFactory::getApplication()->enqueueMessage("Vous devez être connecté pour soumettre un Ticket", 'warning');
      			$this->setRedirect($this->getReturnPage());
      			return false;
      		}
      		
      				
      		$result = parent::save($key,$urlVar);
      			
      		if ($result)
      		{
      			$this->setRedirect($this->getReturnPage());
      		}
      		return $result;
      	}
      La fonction parent appelle en fait store() de JTable. C'est cette dernière qui procède à l'enregistrement. J'avoue ne pas tout comprendre mais si je comprends bien elle enregistre chaque champs de la variable jform de $_POST.
      Et donc, c'est là que je coince car elle n'enregistre pas les données liées aux fichiers (upload) du formulaire.

      Commentaire

      Annonce

      Réduire
      Aucune annonce pour le moment.

      Partenaire de l'association

      Réduire

      Hébergeur Web PlanetHoster
      Travaille ...
      X