Ejemplo n.º 1
0
 /**
  * Wysyłanie plików na serwer,
  * Zapis do bazy metadanych
  * 
  */
 public function katalogowanieAction()
 {
     $id_katalogu = $this->getRequest()->getParam('katalog');
     $catalogMapper = Model_CatalogMapper::getInstance();
     $katalog = $catalogMapper->katalog($id_katalogu);
     $sciezka = $katalog->getPath();
     $this->view->sciezka = $sciezka;
     if (!empty($_FILES)) {
         $tempFile = $_FILES['Filedata']['tmp_name'];
         $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
         //nazwy plików: tymczasowego i oryginalnego
         $file = $_FILES['Filedata']['tmp_name'];
         $filename = $_FILES['Filedata']['name'];
         //sprawdzenie czy istnieje taka nazwa w bazie
         $photoMapper = Model_PhotoMapper::getInstance();
         $filename_tmp = $filename;
         $i = 1;
         do {
             $nazwa_spr = $photoMapper->sprawdzNazwe($id_katalogu, $filename_tmp);
             if ($nazwa_spr) {
                 if ($i == 1) {
                     $filename = substr($filename_tmp, 0, -4);
                 } else {
                     if ($i < 10) {
                         $filename = substr($filename_tmp, 0, -8);
                     } else {
                         $filename = substr($filename_tmp, 0, -9);
                     }
                 }
                 $filename_tmp = $filename . ' (' . $i . ')' . '.jpg';
                 $i++;
                 $a = true;
             } else {
                 $a = false;
             }
         } while ($a);
         $targetFile = str_replace('//', '/', $targetPath) . $filename_tmp;
         //pobranie metadanych ze zdjęcia i zapis do bazy
         $zdjecie = new Model_Photo();
         $zdjecie->pobierzMetadane($file, $filename_tmp, $id_katalogu);
         $mapper = Model_PhotoMapper::getInstance();
         $mapper->save($zdjecie);
         //przesłanie zdjęcia na serwer
         move_uploaded_file($tempFile, $targetFile);
         echo str_replace($_SERVER['DOCUMENT_ROOT'], '', $targetFile);
         //generowanie miniatury do exifa (jeśli nie ma)
         $miniatura = new Model_Thumbnail();
         $miniatura->generujMiniature($targetFile);
     }
 }