Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Pobranie rozmiaru pliku
Forum PHP.pl > Forum > PHP > Frameworki
kielich
Mam jeszcze jeden problem mianowicie kiedy chce odczytać rozmiar pliku już po uploadzie robie tak

  1. $czytaj = new Zend_File_Transfer_Adapter_Http();
  2. $czytaj ->setDestination('ścieżka');
  3. $czytaj ->receive('brak.jpg');
  4.  
  5. print_r($czytaj ->getFileSize());


I otrzymuje pustą TABLICE . Jak mam to zrobić ?!?
melkorm
a czy plik się uploaduje?

Pokaż trochę więcej kodu. Ogólnie moim zdaniem używanie Zend_Form_Element_File jest bardziej przejrzyste niż adaptera surowo, ale jak kto woli.
kielich
Tak upload już napisałem i plik jest w folderze teraz tylko muszę wyciągnąć informację na temat pliku " brak.jpg" nic więcej . Ale coś jest źle bo tablica jest pusta
melkorm
a jak użyjesz tego przed recive?

Nie korzystam bezpośrednio z adaptera więc ciężko mi powiedzieć :/
kielich
To może powiedz jak ty byś to odczytał (rozmiar piku)
melkorm
  1. $file = new Ext_Form_Element_File('Filedata');
  2. $file->siValid(); // recive
  3. $file->getFileSize(); // tutaj zwraca poprawną wartość
kielich
bez podania ścieżki questionmark.gif
melkorm
Opuściłem parę niepotrzebnych (oczywistych?) linijek jak
  1. $file->setDestination('..');
kielich
Oczywiście mógłbym użyć twojego rozwiązania ale chce się dowiedzieć jak mam napisać to swoim sposobem bo mnie to ciekawi jak to rozwiązać ;/

Zrobiłem tak i działa w 50%

bo a tablicy jest nazwa i ścieżka o to kod:

  1. $adapter = new Zend_File_Transfer_Adapter_Http();
  2.  
  3. $adapter->setDestination('ścieżka', 'brak.jpg');
  4.  
  5. $file = $adapter->getFileInfo ();
  6.  
  7. print_r($file);

kiedy dodam
  1. $file = $adapter->getFileSize ();

wywala bład : plik nie istnieje

Czy ktoś wie jak to rozwiązać questionmark.gif

Niech ktoś mi poda jakieś możliwie działające rozwiązanie ...
melkorm
Specjalnei dla Ciebie zrobiłem testowy upload przy użyciu adaptera:
  1. <form action="" method="POST" enctype="multipart/form-data">
  2. <input type="file" name="file" />
  3. <input type="submit" />
  4. </form>

Adapter:
  1. if($this->getRequest()->isPost())
  2. {
  3. $adapter = new Zend_File_Transfer_Adapter_Http();
  4. $adapter->setDestination( /* dest */ );
  5. $adapter->receive();
  6. var_dump($adapter->getFileSize()); // poprawnie wyświetla rozmiar
  7. }

Element File:
  1. if($this->getRequest()->isPost())
  2. {
  3. $el = new Zend_Form_Element_File(\'file\');
  4. $el->setDestination( /* path */ );
  5. $el->isValid( $this->_getParam(\'file\') );
  6. var_dump($el->getFileSize()); // też zwraca poprawnie
  7. exit;
  8. }


Wersja Zend\'a:
  1. const VERSION = \'1.10.2\';
kielich
Ale jak już pisałem upload mam i działa jak należy teraz chce napisać nową funkcję która mi odpowiednio pobierze dany plik i wypisze jego SIZE
exclamation.gif

robię wszystko tak jak pisałem / tak jak ty napisałeś (adapter) i dostaje

Kod
Fatal error: Uncaught exception 'Zend_File_Transfer_Exception' with message 'File '' does not exist' in ...


dziwi mnie to ponieważ wszystkie ścieżki są dobre upload działa czy to może jakiś bug w zendzie mam wersje 1.9.x

Zmieniłem nawet biblioteki na wersje najnowszą

Kurcze gdzie leży problem .Proszę o pomoc.

Nawet jak napiszę to tak (choć wole przez adapter)
to wywala bład mimo że plik podany



  1. $el = new Zend_Form_Element_File('brak.jpg');
  2. $el->setDestination(' ... ');
  3. $el->isValid( $this->_getParam('brak.jpg') );


Kod
'The file transfer adapter can not find "brakjpg"


NIe wiem dlaczego ucina tę " . " (kropka)

Bo mógłbym załatwić sprawę tak

  1. $file1 = "plik";
  2. $lines = filesize($file1);
  3.  
  4. print_r($lines);


Ale strasznie mi się to nie podoba taką strukturę mieszać z frameworkiem
melkorm
  1. $el->isValid( $this->_getParam('brak.jpg') );


tu podajesz nazwę pola File smile.gif Pewnie w adapterze to samo, a nie, jak Ty to robisz, nazwę uploadowanego pliku.
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.