Boa tarde! Não consigo editar ou subir novas imagem, só consigo subir uma e exibir a mesma. Se eu tento editá-la, ou adicionar um novo vídeo com uma imagem diferente não funciona.
<?php
namespace Alura\Mvc\Controller;
use Alura\Mvc\Entity\Video;
use Alura\Mvc\Repository\VideoRepository;
class newVideoController implements Controller
{
public function __construct(private VideoRepository $videoRepository)
{
}
public function processaRequisicao(): void
{
$url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);
if ($url === false) {
header('Location: /?sucesso=0');
return;
}
$titulo = filter_input(INPUT_POST, 'titulo');
if ($titulo === false) {
header('Location: /?sucesso=0');
return;
}
$video = new Video($url, $titulo);
// verifica o arquivo enviado e processa o upload
if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
// move o arquivo da pasta padrão para um local acessível.
move_uploaded_file(
$_FILES['image']['tmp_name'],
__DIR__ . '/../../public/img/uploads/' . $_FILES['image']['name']
);
// processa o upload
$video->setFilePath($_FILES['image']['name']);
}
$sucess = $this->videoRepository->add($video);
if ($sucess === false) {
header('Location: /?sucesso=0');
} else {
header('Location: /?sucesso=1');
}
}
}
<?php
require_once 'inicio-html.php'; ?>
<main class="container">
<form class="container__formulario" enctype="multipart/form-data" method="post">
<h2 class="formulario__titulo">Envie um vídeo!</h2>
<div class="formulario__campo">
<label class="campo__etiqueta" for="url">Link embed</label>
<input name="url" value="<?= $video?->url; ?>" class="campo__escrita" required
placeholder="Por exemplo: https://www.youtube.com/embed/FAY1K2aUg5g" id='url' />
</div>
<div class="formulario__campo">
<label class="campo__etiqueta" for="titulo">Titulo do vídeo</label>
<input name="titulo" value="<?= $video?->title; ?>" class="campo__escrita" required placeholder="Neste campo, dê o nome do vídeo"
id='titulo' />
</div>
<div class="formulario__campo">
<label class="campo__etiqueta" for="image">Imagem do vídeo</label>
<input name="image" accept="image/*" type="file" class="campo__escrita" id='image' />
</div>
<input class="formulario__botao" type="submit" value="Enviar" />
</form>
</main>
<?php require_once '/fim-html.php';
<?php
namespace Alura\Mvc\Controller;
use Alura\Mvc\Entity\Video;
use Alura\Mvc\Repository\VideoRepository;
class EditVideoController implements Controller
{
public function __construct(private VideoRepository $videoRepository)
{
}
public function processaRequisicao(): void
{
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if ($id === false || $id === null) {
header('Location: /?sucesso=0');
return;
}
$url = filter_input(INPUT_POST, 'url', FILTER_VALIDATE_URL);
if ($url === false) {
header('Location: /?sucesso');
return;
}
$titulo = filter_input(INPUT_POST, 'titulo');
if ($titulo === false) {
header('Location: /?sucesso=0');
return;
}
$video = new Video($url, $titulo);
$video->setId($id);
if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
// move o arquivo da pasta padrão para um local acessível.
move_uploaded_file(
$_FILES['image']['tmp_name'],
__DIR__ . '/../../public/img/uploads/' . $_FILES['image']['name']
);
// processa o upload
$video->setFilePath($_FILES['image']['name']);
}
$sucesso = $this->videoRepository->update($video);
if ($sucesso === false) {
header('Location: /?sucesso=0');
} else {
header('Location: /?sucesso=1');
}
}
}
![]( )