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 :

probleme message lors upload


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Par défaut probleme message lors upload
    j'ai suivi la doc et rechercher depuis quelques jours sur les forums

    j'ai un formulaire avec un fileselect pour upload un fichier (appelé : fichier), et quand je fais "save", j'ai les messages suivant :

    Unexpected extra form field named "name".
    Unexpected extra form field named "type".
    Unexpected extra form field named "tmp_name".
    Unexpected extra form field named "error".
    Unexpected extra form field named "size".
    voici mon source

    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
     
    // fichier apps/backend/modules/chrono_recus/actions/actions.class.php
    protected function processForm( sfWebRequest $request, sfForm $form )
    {
      $this->form = new chronorecuForm();
      $request = $this->getRequest();
     
      $params = array(
        'fichier' => $request->getFiles( 'fichier' ),
        );
     
      $this->form->bind( $params, $request->getFiles( 'fichier' ) );
      if ( $this->form->isValid() )
      {
        $file = $this->form->getValue( 'fichier' );
        $filename = 'uploaded_' . sha1( $file->getOriginalName() );
        $extension = $file->getExtension( $file->getOriginalExtension() );
        $file->save( sfConfig::get( 'sf_upload_dir' ) . '/' . $filename . $extension );
     
        $result = $this->form->save();
        $this->getUser()->setFlash( 'notice', "La sauvegarde s'est bien déroulée" );
        $this->redirect( '@chrono' );
      }
    }
    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
     
    // fichier lib/form/doctrine/chronorecuForm.class.php
    public function configure()
    {
      $this->setWidgetSchema( new sfWidgetFormSchema( array(
     
            'fichier' => new sfWidgetFormInputFile(
              array(
                'label' => 'Fichier : ',
                ) 
              ),
     
            ) ) );
     
      $this->setValidators( array( 
          'fichier' => new sfValidatorFile(
            array( 
              'required' => false,
              'path' => sfConfig::get( 'sf_upload_dir' ) . '/images',
              )
            ), 
     
          ) );
    }
    merci par avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu les as à quel moment tes messages ? Sur quel traitement ?

    Pourquoi redéfinir dans processForm l'objet $request alors qu'il est déjà envoyé dans l'appel de fonction ?

    Tu crées une variable $param qui est un array avec les données de transfert du fichier. Et tu lies (->bind() ) ton form deux fois avec ces données ($param puis par getFiles() ), hors le bind doit être lié avec le retour des champs puis les fichiers. Je pense que ton erreur vient de là, je suis sur que ton code ainsi rédigé ne peut fonctionner.

    Ensuite tu fais une sauvegarde du form et récupère le retour dans $result qui n'est pas exploité. Dans mes souvenirs, le retour de save() d'un form est un pointeur sur l'objet form en lui même, aucun intérêt de récupérer la valeur.

    Dans ton configure, tu utilises un setWidgetSchema, ce qui a pour effet de supprimer tous le schéma prééxistant (défini dans le setup() de chronorecuBaseForm je suppose). Est-ce bien ce que tu veux faire ?

Discussions similaires

  1. message lors d'une impression
    Par ptimars dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/02/2006, 08h58
  2. [VBA-E]message lors de l'ouverture d'un autre classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 15h30
  3. Supprimer les messages lors de l'exe d'une macro
    Par kluh dans le forum Access
    Réponses: 2
    Dernier message: 01/12/2005, 22h00
  4. Réponses: 4
    Dernier message: 27/10/2005, 11h05
  5. message lors du chargement d'une iframe
    Par zorba49 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/09/2005, 17h27

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