Bonjour.

C'est la première fois de ma vie où j'ai une erreur aussi insolite.

Je tourne sous Symfony 1.4.11. Je voudrais redimensionner l'avatar posté et validé par un sfValidatorFile à chaque enregistrement dans un doSave() de la classe du formulaire.

Le problème c'est que cela me provoque une erreur :
Fatal error: Call to a member function getTempName() on a non-object in lib/form/doctrine/MembreForm.class.php

Et pourtant le traitement continu bel et bien ! Je génère une série de miniatures et ces dites miniatures sont bien créées ! Mon getTempName renvoit bien le chemin temporaire de l'upload. Mouarf je comprends plus rien xD

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
<?php
  protected function doSave($con = null) {
    if ($file = $this->getValue('avatar')) {
      $sel = mt_rand(1,50000);
      $tmp_name = $file->getTempName(); // <======== ligne qui fait tout planter
      // Génération miniature 50x50
      $mini = new sfThumbnail(50, 50, false, true, 80);
      $mini->loadFile($tmp_name);
      $mini->save(sfConfig::get('sf_upload_dir').'/avatars/50x50/'.$sel.$file->getOriginalName(), 'image/jpeg');
 
      // Génération miniature 32x32
      $mini = new sfThumbnail(32, 32, false, true, 80);
      $mini->loadFile($tmp_name);
      $mini->save(sfConfig::get('sf_upload_dir').'/avatars/32x32/'.$sel.$file->getOriginalName(), 'image/jpeg');
 
      // Génération miniature 16x16
      $mini = new sfThumbnail(16, 16, false, true, 80);
      $mini->loadFile($tmp_name);
      $mini->save(sfConfig::get('sf_upload_dir').'/avatars/16x16/'.$sel.$file->getOriginalName(), 'image/jpeg');
 
      $this->values['avatar'] = $sel.$file->getOriginalName();
    }
    else
      $this->values['avatar'] = $this->getObject()->getAvatar();
 
    return parent::save($con);
  }
Merci d'avance