Ejemplo n.º 1
0
 /**
  * Atualiza
  */
 public function updateAction()
 {
     // Só atualiza se a requisição for POST
     if (isset($_POST)) {
         // Status
         $status = false;
         // Busca a imagem
         $image = Image::find($_REQUEST['image']['id']);
         // Caso não exista a imagem
         if ($image == null) {
             $this->notFound('image');
         }
         // Define os valores
         $image->setTitle($_REQUEST['image']['title']);
         $image->setDescription($_REQUEST['image']['description']);
         // Verifica se tem algum arquivo para fazer upload
         $size = $_FILES['image']['size']['file'];
         if ($size > 0) {
             $name = $_FILES['image']['name']['file'];
             $type = $_FILES['image']['type']['file'];
             $tmp_name = $_FILES['image']['tmp_name']['file'];
             $error = $_FILES['image']['error']['file'];
             $_REQUEST['image']['file_name'] = $name;
             $_REQUEST['image']['file_content_type'] = $type;
             $_REQUEST['image']['file_size'] = $size;
             $image->setFileName($_REQUEST['image']['file_name']);
             $image->setFileContentType($_REQUEST['image']['file_content_type']);
             $image->setFileSize($_REQUEST['image']['file_size']);
             // Verifica se tem erros de validação
             if ($image->isValidWithTmpName($tmp_name)) {
                 // Salva
                 $image->save();
                 // Gerenciador de imagens
                 $imageManager = new ImageManager($image);
                 // Apaga os arquivos antigos
                 $imageManager->removeDirFiles();
                 // Faz o upload da imagem
                 $imageManager->setName($name);
                 $imageManager->setType($type);
                 $imageManager->setTmpName($tmp_name);
                 $imageManager->setError($error);
                 $imageManager->setSize($size);
                 $imageManager->upload();
                 $status = true;
             }
         } else {
             // Verifica se tem erros de validação
             if ($image->isValid()) {
                 // Salva
                 $image->save();
                 $status = true;
             }
         }
         // Verifica se foi salvo com sucesso
         if ($status) {
             // Cria a variável flash
             $this->setFlash('notice_success', 'Image updated successfully.');
             // Redireciona para a listagem
             $this->redirectTo('image', 'list');
         } else {
             // Passa as variáveis para a view
             $this->image = $image;
             // Obtém os erros de validação
             $this->errors = $image->getErrors();
         }
     } else {
         // Cria a variável flash
         $this->setFlash('notice_error', 'Update image failed.');
         // Redireciona para a listagem
         $this->redirectTo('image', 'list');
     }
 }