Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]plugin sfWidgetFormInputSWFUpload nie działa
Forum PHP.pl > Forum > PHP > Frameworki
harvesterix
Witam
Czy ktoś z was używał kiedyś tego pluginu? To tak na wstępie bo bardzo mało jest na forach o nim dry.gif

Jaki inny plugin polecacie do łatwego uploadowania wielu plików na serwer?

No i puenta, zainstalowałem sobie ten plugin, wszystko ustawiłem na początek jak w instrukcji, stronka się odpala ale w formularzu mam zwykłe pole upload'u umożliwiające wybranie jednego pliku a po wybraniu nic się nie dzieje blinksmiley.gif

Używam symfony 1.4.1 i sfWidgetFormInputSWFUpload 1.0.0 to co na szybkości skleiłem do testów:

backend/modules/pictures/actions/actions.class.php
  1. class picturesActions extends autoPicturesActions
  2. {
  3. public function executeDodaj(sfWebRequest $request)
  4. {
  5.  
  6. $this->form = new PictureForm();
  7. if($request->isMethod('post'))
  8. {
  9. $this->form->bind($request->getParameter('screen'), $request->getFiles('screen'));
  10. $values = $this->form->getValues();
  11. $file = $values['zdjecie'];
  12.  
  13. if($file)
  14. {
  15. $filecount = count(glob(sfConfig::get('sf_web_dir').'/uploads/images/*.*'));
  16. $filename = 'zdjecie'. ++$filecount;
  17. $extension = $file->getExtension();
  18.  
  19. if($file->save(sfConfig::get('sf_web_dir') . '/uploads/images/'. $filename . $extension))
  20. {
  21.  
  22. }
  23. else
  24. {
  25. echo "UPLOAD FAILED";
  26. }
  27. }
  28. else
  29. {
  30. echo "NO FILE SELECTED";
  31. }
  32. $this->setLayout(false);
  33. $this->getResponse()->setContent('OK');
  34. return sfView::NONE;
  35. }
  36. }
  37. }


lib/form/PictureForm.class.php
  1. <?php
  2. class PictureForm extends sfForm
  3. {
  4. public function configure()
  5. {
  6. $this->setWidgets(array(
  7. 'zdjecie' => new sfWidgetFormInputSWFUpload()
  8. ));
  9. $this->widgetSchema['zdjecie']->setOption('collapse_queue_on_init', false);
  10. $this->widgetSchema->setNameFormat('screen[%s]');
  11.  
  12. $this->setValidators(array(
  13. 'zdjecie' => new sfValidatorFile(array(
  14. 'required' => true,
  15. 'path' => sfConfig::get('sf_upload_dir').'/images',
  16. 'mime_types'=>'web_images',
  17. ))
  18. ));
  19. }
  20. }
  21. ?>


apps/backend/modules/pictures/templates/dodajSuccess.php
  1. <form action="<?php echo url_for('@pics')?>" method="POST" enctype="multipart/form-data" accept-charset="utf-8">
  2. <p>
  3. <?php use_stylesheets_for_form($form)?>
  4. <?php use_javascripts_for_form($form)?>
  5. <?php echo $form?>
  6. </p>
  7. </form>
destroyerr
A firebug'a masz zainstalowanego? To podstawa przy takiej pracy.
bikerszymek
Zacznij dokładnie czytać dokumentację
  1. <input type="hidden" name="sf_method" value="put" />

  1. if($request->isMethod('put'))

dalej radź sobie sam
harvesterix
Cytat(bikerszymek @ 30.07.2010, 08:21:45 ) *
Zacznij dokładnie czytać dokumentację
  1. <input type="hidden" name="sf_method" value="put" />

  1. if($request->isMethod('put'))

dalej radź sobie sam


HeHe fachowiec ... no cóż tak wyglądał pierwszy test na tym pluginie, zgadnij jakie były efekty?

Co do Firebuga to nie mam a wiem że powinienem, nie zauważyłem ale webDeveloper wywala mi taki błąd "SWFUpload is not defined"


OK widzę problem w źródłach ścieżka przy ładowaniu swf-a jest zła.

Tak czy siak plugin nadal nie działa wyświetlają mi się linki browse, upload, cancel ale nic nie moge kliknąć a raczej po kliknięciu nic się nie dzieje. Jakieś pomysły?questionmark.gif

Dobra załatwione siedziałem nad badziewiem dwa dni ale wykminiłem yahoo.gif
phpion
Cytat(harvesterix @ 30.07.2010, 13:47:39 ) *
Dobra załatwione siedziałem nad badziewiem dwa dni ale wykminiłem yahoo.gif

W dobrym tonie byłoby podzielić się rozwiązaniem z innymi.
harvesterix
Co do wyświetlenia to sprawa tak banalna że strach w layout.php nie dodałem linijki
  1. <?php include_stylesheets() ?>

tylko klepałem css-y z palca więc polecenie
  1. <?php use_stylesheets_for_form($form)?>

w dodajSuccess.php nie ładowało css-a.

Ale teraz mam inny problem gdy plugin wczyta już zdjęcie wyskakuje mi csrf Token:Required tak jakby formularz z którego wysyłam zdjecia mial zly token

to jest templatka apps/backend/modules/pictures/templates/dodajSuccess.php
  1. <?php use_stylesheets_for_form($form)?>
  2. <?php use_javascripts_for_form($form)?>
  3. <?php echo $form?>
  4. <input type="hidden" name="sf_method" value="post" />


pliczek akcji:
apps/backend/modules/pictures/actions/actions.class.php
  1. class picturesActions extends autoPicturesActions
  2. {
  3. public function executeDodaj(sfWebRequest $request)
  4. {
  5. $this->form = new PictureForm();
  6. if($request->isMethod('post'))
  7. {
  8. // VALIDATE THE FORM, DO SOMETHING WITH THE FILES, ...
  9. // ..
  10. // ..
  11.  
  12. // UNSET THE RESPONSE
  13. $this->setLayout(false);
  14. return sfView::NONE;
  15. }
  16.  
  17. }
  18. }


Dokładnie wygląda to tak jak na poniższym obrazku tak jakby odpalało mi stronę w stronie i przy odpaleniu akcji krzyczało o zalogowanie.

Co muszę zrobić żeby nie krzyczało o token questionmark.gif
bikerszymek
Problem kilkukrotnie walkowany na forum symfony. Napisz swoje wlasne SessionStorage i po sprawie.
harvesterix
W dobrym tonie byłoby dorzucić linki do tych wątków rolleyes.gif
Mimo wszystko dzięki poszukam
bikerszymek
Mówisz i masz pierwszy z brzegu:
http://forum.symfony-project.org/index.php/m/44454/
harvesterix
OK
Już działa guitar.gif
Dzięki za pomoc
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.