Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Upload zmiana nazwy pliku w locie.
Forum PHP.pl > Forum > PHP > Frameworki
kielich
Witam,
Już od kilku godzin próbuje zmienić nazwę pliku przed jego za upload'owaniem . Czy ktoś może mi pomoc questionmark.gif

W manualu nie ma takiej informacji.
melkorm
  1. <?php
  2. class Ext_Filter_File_Rename extends Zend_Filter_File_Rename
  3. {
  4. public function getNewName($value, $source = false)
  5. {
  6. $rename = $this->_getFileName($value);
  7. if (isset($rename['target'])) {
  8. $sourceFile = basename($rename['target']);
  9. $sourceDir = dirname($rename['target']);
  10.  
  11. // Nakladamy filtry
  12. $sourceFile = preg_replace('#[^a-z0-9_\.]+#iu', '_', $sourceFile);
  13. $sourceFile = strtolower($sourceFile);
  14.  
  15. $source = rtrim($sourceDir, '/\\').'/'.$sourceFile;
  16. $sourceFile = substr(md5(microtime()), -4).'_'.$sourceFile;
  17. $source = $sourceDir.$sourceFile;
  18. }
  19. return isset($sourceFile) ? $sourceFile : $value;
  20. }
  21. }
  22. ?>
  23.  


Używasz jak zwykłego filtru.

Gdzie Ext_ to po prostu prefiks mojej biblioteki.

Edit:
1. Oczywiście funkcje zmieniającą nazwę możesz dowolnie zmienić do własnych potrzeb.
2. Z tego co pamiętam tylko ten filtr jest odpalany przed rzeczywistym zapisem pliku do katalogu, dlatego go nadpisałem dla własnych potrzeb.

Edit_2:
Wywołanie:
  1. $element->addFilter( new Ext_Filter_File_Rename( $element->getFileName() ));
kielich
Zrobiłem to inaczej bardziej zrozumiale i przejrzyściej ( dla mnie) - ale twoja odpowiedz mnie nakierował na to czego oczekiwałem smile.gif
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.