Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Kilka plików w processUploadedFile
Forum PHP.pl > Forum > PHP > Frameworki
Foxx
Witajcie.
Załóżmy, że dodaję w adminie artykuł. Załóżmy, że artykuł ma obrazek, który ładuję i nie ma z tym problemów.
Dalej, chcę jeszcze po uploadzie zeskalować ten obraz - to nie problem, tworzę w ArtykulForm metodę processUploadedFile() i w niej modyfikuję obraz. Wygląda to mniej więcej tak:

  1. <?php
  2. protected function processUploadedFile($field, $filename = null, $values = null) {
  3.  $fn = parent::processUploadedFile($field, $filename, $values);
  4.  // zmniejszanie obrazka np. za pomocą sfThumbnail            
  5.  return $fn;
  6. }
  7. ?>


Ale co mam zrobić, jeżeli artykuł ma dwa obrazki, chciałbym je oba skalować. Wynika to z jakichś moich braków ale nie wiem jak to ugryźć, nie można przecież zrobić po prostu tak:
  1. <?php
  2. protected function processUploadedFile($field, $filename = null, $values = null) {
  3.  $fn = parent::processUploadedFile('plakat', $filename, $values);
  4.  // zmniejszanie obrazka np. za pomocą sfThumbnail    
  5.        
  6.  $fn = parent::processUploadedFile('drugi_obrazek', $filename, $values);
  7.  // zmniejszanie...
  8.  return $fn;
  9. }
  10. ?>

Bo zwracam w ten sposób nazwę drugiego obrazka a pierwszego nie i ten nie zostanie zapisany. Domyślam się, że albo trzeba jakoś manipulować argumentami albo w ogóle inaczej to rozwiązać bo nie wyobrażam sobie jak mam zwrócić nazwy obu plików w jednej metodzie. Będę wdzięczny za podpowiedź.
destroyerr
To zależy, nie wiemy jak wygląda Twoja baza. Chcesz dwa pliki wsadzać do jednego kolumny i oddzielać jakimś magicznym znakiem? Jeśli tak, to jest to zły pomysł.
Foxx
Nie, nie - tabela w wygląda mniej więcej tak:

artykul:
- id:
- tytul:
- plakat:
- drugi_obrazek:
destroyerr
No to przecież funkcja processUploadedFile zostanie wykonana dwa razy. Konkretnie to dla każdego pola, którego walidator jest instancją sfValidatorFile.
Foxx
Rozumiem, czyli trzeba to rozwiązać tak:
  1. <?php
  2. $fn = parent::processUploadedFile($field, $filename, $values);
  3.  
  4. if ($field == 'plakat') {
  5.  //...
  6. } else if($field == 'drugi_obrazek'){
  7.  //...
  8. }
  9. ?>

tak? Zresztą, sprawdzę to smile.gif Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.