Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]uplod przeskalowanych zdjęć //Rozwiązane
Gribo
post 6.08.2009, 00:26:40
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


witam
chce zrobić by zdjęcie uploadowanie przez użytkownika było przed zapisem zmniejszane do podanych rozmiarów, korzystam przy tym z sfThumbnail. Problem w tym że jak już zdjęcie jest zapisane na dysku to w bazie nie ma zapisanej nazwy tego pliku. Jest po prostu puste pole.

oto kod :
  1. <?php
  2. class UserForm extends BaseUserForm
  3. {
  4.  public function configure()
  5.  {
  6.      parent::configure();
  7.    $this->widgetSchema['logo'] = new sfWidgetFormInputFileEditable(array(
  8.      'label'     => 'Company logo',
  9.      'file_src'  => '/uploads/avatar/'.$this->getObject()->getLogo(),
  10.      'is_image'  => true,
  11.      'edit_mode' => !$this->isNew(),
  12.      'template'  => '%file%
  13. %input%
  14. %delete% %delete_label%',
  15.    ));
  16.    
  17.    $this->validatorSchema['logo_delete'] = new sfValidatorBoolean();
  18.  }
  19.  
  20.  protected function removeFields()
  21.  {
  22.    unset(
  23.      $this['created_at'], $this['updated_at']
  24.    );
  25.  }
  26.  
  27.  
  28.   protected function doSave ( $con = null )  
  29.   {  
  30.     $file = $this->getValue('logo');  
  31.     if ( $file )  
  32.     {  
  33.       $filename = sha1($file->getOriginalName()).$file->getExtension($file->getOriginalExtension());  
  34.       $filepath = sfConfig::get('sf_upload_dir').'/avatar/'.$filename;
  35.  
  36.       if ( file_exists($filepath) )  
  37.       {  
  38.         unlink($filepath);  
  39.       }  
  40.       $thumbnail = new sfThumbnail(50, 50);
  41.       $thumbnail->loadFile($file->getTempName());
  42.       $thumbnail->save($filepath);
  43.     }  
  44.  
  45.     return parent::doSave($con);  
  46.   }
  47.  
  48. }
  49. ?>


przypuszczam że to wina walidatora
'logo'=> new sfValidatorFile(array('max_size'=>100000,'mime_types'=>'web_images', 'required'=> false))
bo jak wypełnię opcje 'path' i wpisze jakąś ścieżkę to zdjęcie jest uploadowane podwójnie tj. zmniejszone i w oryginalnym rozmiarze i nazwa pliku jest zapisywana. Macie jakiś sposób na to ?



Problem rozwiązany. Dla wszystkich którzy beda mieć problem z tym wystarczy w validated_file_class podać swoją klase w której nadpisujemy metode save z sfValidatedFile i po kłopocie biggrin.gif

Ten post edytował Gribo 6.08.2009, 00:42:54


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:55