Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Zend Framework] Forumlarz nie może znaleźć folderu
sweter
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. var_dump(APPLICATION_PATH.'/tmp');

Go to the top of the page
+Quote Post
sweter
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


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

i już (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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. }
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #4





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Zmień na /tmp/
Go to the top of the page
+Quote Post
sweter
post
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


Niestety nie pomogło (IMG:style_emoticons/default/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."

Ten post edytował sweter 18.06.2010, 18:26:37
Go to the top of the page
+Quote Post
zend
post
Post #6





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


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();
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 05:01