/** * 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'); } }