Exemplo n.º 1
0
 public function uploadAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $db = new Fotos();
     $album_id = $this->_request->getPost('album_id');
     $db->setAlbumId($album_id);
     $adapter = new Zend_File_Transfer_Adapter_Http();
     $adapter->setDestination(APPLICATION_PATH . '/../data/temp');
     $upload = new Zend_File_Transfer();
     $files = $upload->getFileInfo();
     if (!file_exists(ROOT_DIR . DS . 'site' . DS . 'images' . DS . 'galeria' . DS . $album_id)) {
         mkdir(ROOT_DIR . DS . 'site' . DS . 'images' . DS . 'galeria' . DS . $album_id, 0777, true);
     }
     foreach ($files as $file => $info) {
         if ($upload->isUploaded($file)) {
             $extension = substr($info['name'], strrpos($info['name'], '.') + 1);
             $filename = 'photo_' . time() . '.' . $extension;
             $adapter->addFilter('Rename', array('target' => APPLICATION_PATH . '/../data/temp/' . $filename, 'overwrite' => true));
             $adapter->receive($info['name']);
             if (!$adapter->receive()) {
                 $messages = $adapter->getMessages();
                 echo implode("\n", $messages);
                 exit;
             }
             //setFileName::Url
             $db->setUrl($filename);
             //setCapa::false (0)
             $db->setCapa(0);
             $imanee = new Imanee\Imanee(APPLICATION_PATH . '/../data/temp/' . $filename);
             //resized
             $imanee->resize(870, 653)->write(ROOT_DIR . DS . 'site' . DS . 'images' . DS . 'galeria' . DS . $album_id . DS . 'r_' . $filename, 80);
             //full
             //$imanee->resize(1024, 768)
             //        ->write(ROOT_DIR . DS . 'site' . DS . 'images' . DS . 'galeria' . DS . $album_id . DS . 'f_' . $filename, 80);
             //thumbnail
             $imanee->thumbnail(200, 200, true)->write(ROOT_DIR . DS . 'site' . DS . 'images' . DS . 'galeria' . DS . $album_id . DS . 't_' . $filename, 60);
             unlink(APPLICATION_PATH . '/../data/temp/' . $filename);
             $data = array('url' => $db->getUrl(), 'album_id' => $db->getAlbumId(), 'capa' => $db->getCapa());
             $foto_id = $db->saveFoto($data);
             $data['foto_id'] = $foto_id;
             echo json_encode($data);
         }
     }
 }
Exemplo n.º 2
0
 public function atualizarAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $slug = new My_Slugifier();
     $slug->setTransliterate(true);
     #Remover também caractéres Latin (ex.: á, ü, ç)
     if ($this->_request->isPost()) {
         $tipo = $this->_request->getPost('tipo');
         $material_id = $this->_request->getPost('material_id');
         if ($tipo == 'imagem') {
             $imagem = $this->_request->getPost('imagem');
             //localização que imagem será salva (temp)
             $imageName = 'material_' . time() . '.jpg';
             $url = ROOT_DIR . DS . '..' . DS . 'data' . DS . 'temp' . DS . $imageName;
             //remove criptografia e especificações da string de imagem
             $base64 = base64_decode(preg_replace('#^data:image/[^;]+;base64,#', '', $imagem));
             //criar imagem
             $source = imagecreatefromstring($base64);
             //salvar imagem temporária
             imagejpeg($source, $url, 70);
             //verifica a existência do diretório e cria o mesmo (se necessário)
             if (!is_dir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'imagem')) {
                 mkdir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'imagem', 0777, true);
             }
             //redimensiona a imagem mantendo a proporção e armazena nos diretórios corretos.
             $imanee = new Imanee\Imanee(APPLICATION_PATH . '/../data/temp/' . $imageName);
             //full
             $imanee->resize(870, 653)->write(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'imagem' . DS . 'r_' . $imageName, 80);
             //thumbnail
             $imanee->thumbnail(200, 200, true)->write(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'imagem' . DS . 't_' . $imageName, 60);
             //apaga imagem temporária
             unlink(APPLICATION_PATH . '/../data/temp/' . $imageName);
             #TODO: Remover a imagem atual (database) ao finalizar a alteração.
             #TODO: Atualizar tabela com a nova imagem.
         } elseif ($tipo == 'audio') {
             $audio = $this->_request->getPost('audio');
             //armazenando a string do arquivo na variável $base64
             $base64 = base64_decode(preg_replace('#^data:audio/[^;]+;base64,#', '', $audio));
             //obtendo formato do arquivo ($extension)
             base64_decode(preg_match('/audio\\/[^;]+;/', $audio, $decoded));
             $ext = str_replace(array('audio/', ';'), array(''), $decoded);
             $extension = '.' . $ext[0];
             //localização que o áudio será salvo (temp)
             $audioName = 'material_' . time() . $extension;
             $url = ROOT_DIR . DS . '..' . DS . 'data' . DS . 'temp' . DS . $audioName;
             file_put_contents($url, $base64);
             //verifica a existência do diretório e cria o mesmo (se necessário)
             if (!is_dir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'audio')) {
                 mkdir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'audio', 0777, true);
             }
             //move o arquivo da pasta temp para a pasta correta e renomeia (se necessário)
             rename($url, ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'audio' . DS . $audioName);
             #TODO: Remover o audio atual (database) ao finalizar a alteração.
             #TODO: Atualizar tabela com o novo audio.
         } elseif ($tipo == 'arquivo') {
             //Dados de Exemplo (obter os mesmos do registro real #db)
             $titulo = 'Material de Aula - Dançando Macarena Style no passinho do Romano';
             //Dados de Exemplo :: FIM
             $arquivo = $this->_request->getPost('arquivo');
             $formato = $this->_request->getPost('formato');
             //armazenando a string do arquivo na variável $base64
             $base64 = base64_decode(preg_replace('#^data:([^;]*)+;base64,#', '', $arquivo));
             //localização que o áudio será salvo (temp)
             $arquivoName = 'material_' . time() . '.' . $formato;
             $url = ROOT_DIR . DS . '..' . DS . 'data' . DS . 'temp' . DS . $arquivoName;
             file_put_contents($url, $base64);
             //verifica a existência do diretório e cria o mesmo (se necessário)
             if (!is_dir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'arquivo')) {
                 mkdir(ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'arquivo', 0777, true);
             }
             //gera nome do arquivo baseado no título do material
             $newName = $slug->slugify($titulo) . '.' . $formato;
             //move o arquivo da pasta temp para a pasta correta e renomeia (se necessário)
             rename($url, ROOT_DIR . DS . 'site' . DS . 'area-do-aluno' . DS . $material_id . DS . 'arquivo' . DS . $newName);
             #TODO: Remover o arquivo atual (database) ao finalizar a alteração.
             #TODO: Atualizar tabela com o novo arquivo.
         } elseif ($tipo == 'video') {
             $video = $this->_request->getPost('video');
             var_dump($_POST);
         }
     }
 }