Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Zend Framework] Forumlarz nie może znaleźć folderu
Forum PHP.pl > Forum > Przedszkole
sweter
Witam,
mam taki fragment kodu odpowiedzialnego za tworzenie formularza:
  1. $this->addElement('file', 'uploadFile', array(
  2. 'destination' => APPLICATION_PATH.'/tmp',
  3. 'validators' => array(
  4. array('count', false, 1), // ile plików możma wysłać jednocześnie?
  5. array('size', false, 102400), // maxymalny rozmiar pliku
  6. ),
  7. 'label' => 'Wyślij plik:'
  8. ));

W 2. linijce mam wskazać gdzie powinien być katalog "tmp". Domyślam się, że APPLICATION_PATH wskazuje na główny folder aplikacji (czyli tam gdzie są katalogi "application", "library" i "public").

Niestety wywala mi błąd:
Kod
Fatal error: Uncaught exception 'Zend_File_Transfer_Exception' with message 'The given destination is not a directory or does not exist' in /var/www/treetime/library/Zend/File/Transfer/Adapter/Abstract.php:1028 Stack trace: #0 /var/www/treetime/library/Zend/Form/Element/File.php(509): Zend_File_Transfer_Adapter_Abstract->setDestination('APPLICATION_PAT...', 'uploadFile') #1 /var/www/treetime/library/Zend/Form/Element.php(359): Zend_Form_Element_File->setDestination('APPLICATION_PAT...') #2 /var/www/treetime/library/Zend/Form/Element.php(253): Zend_Form_Element->setOptions(Array) #3 /var/www/treetime/library/Zend/Form.php(1078): Zend_Form_Element->__construct('uploadFile', Array) #4 /var/www/treetime/library/Zend/Form.php(1009): Zend_Form->createElement('file', 'uploadFile', Array) #5 /var/www/treetime/application/models/AddPhoto.php(11): Zend_Form->addElement('file', 'uploadFile', Array) #6 /var/www/treetime/library/Zend/Form.php(235): AddPhoto->init() #7 /var/www/treetime/application/controllers/AddController.php(48): Ze in /var/www/treetime/library/Zend/File/Transfer/Adapter/Abstract.php on line 1028


Co zrobić?
melkorm
  1. var_dump(APPLICATION_PATH.'/tmp');

sweter
Okej, problem rozwiązany. Wystarczyło do index.php wstawić
  1. defined('APPLICATION_PATH')
  2. || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

i już smile.gif
Wysyłanie pliku działa prawie dobrze. "Prawie", ponieważ wyświetla mi się komunikat "Plik [nazwa_pliku] został poprawnie wysłany.", ale mimo to nie ma go w folderze /tmp sad.gif
Kontroler z obsługą formularza wygląda tak:
  1. if ($this->getRequest()->isPost()) {
  2. if (!$form->isValid($this->getRequest()->getPost())) { // Próba walidacji formularza
  3. $information = 'Błąd podczas sprawdzania poprawności formularza.';
  4. } elseif (!$form->uploadFile->receive()) { // Odbiór pliku
  5. $information = 'Błąd podczas odbierania pliku.';
  6. } else { // Sukces
  7. echo 'Plik ' . $form->uploadFile->getFileName()
  8. . ' został poprawnie wysłany.';
  9. }
  10. }
krzysztof_kf
Zmień na /tmp/
sweter
Niestety nie pomogło sad.gif

EDIT:
Jak nawet nie wybiorę pliku, tylko po prostu kliknę na "Wyślij" to wyświetla mi
"Plik Array został poprawnie wysłany."
zend
Cytat
"Plik Array został poprawnie wysłany."
Przecież deklarujesz że to ma być tablica
  1. array('count', false, 1)

A to zadziała?
  1. $form -> getValues();
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.