Upload de imagem
Eu tenho esse seguinte código:
public function queryInsert(){
try{
$this->titulo = $_POST['titulo'];
$this->sub = $_POST['sub'];
$this->descricao = $_POST['descricao'];
$this->data = $_POST['data'];
$this->status = $_POST['status'];
$this->usuario = $_SESSION['usuarioNome'];
$arquivo = $_FILES['arquivo'];
$largura = 280; //280px
$altura = 180; //180px
$tamanho = 400000; //1MB
$diretorio = "upload/";
//2º PARTE (VERIFICANDO A EXISTENCIA DO ARQUIVO E FAZENDO A VALIDACAO DO MESMO COM TRÊS CONDIÇÕES)
if(!empty($arquivo['name'])){
//VALIDANDO O TIPO DE IMAGEM
//echo $arquivo['type'];
if(!preg_match('/^(image)\/(jpeg|png)$/', $arquivo['type'])){
$error = '<script type="text/javascript">alert("Só pode ser enviado imagens (JPG e PNG).");</script>';
}
//VALIDANDO AS DIMENSÕES DO ARQUIVO
$dimensoes = getimagesize($arquivo['tmp_name']);
if($dimensoes[0] > $largura || $dimensoes[1] > $altura){
$error = '<script type="text/javascript">alert("Esta imagem precisa está nessas dimensões 280x180.");</script>';
}
//VALIDANDO O TAMANHO DO ARQUIVO
if($arquivo['size'] > $tamanho){
$error = '<script type="text/javascript">alert("Esta imagem precisa ser menor que 1MB.");</script>';
}
//3º PARTE (ALTERANDO O NOME DO ARQUIVO E ENVIANDO PARA PASTA QUE LHE FOI DESTINADA)
if(count($error) == 0){
$ext = pathinfo($arquivo['name']);
$nome_imagem = $this->objfc->normalizaString($this->titulo).'.'.$ext['extension'];/**/
//NÃO ESQUECER DE SETAR PERMIÇÃO NAS PASTA QUE IRÁ RECEBER O UPLOAD.
$caminho_imagem = $diretorio.$nome_imagem;
move_uploaded_file($arquivo['tmp_name'], $caminho_imagem);
//CADASTRANDO AS INFORMAÇÕES
$cst = $this->con->conectar()->prepare("INSERT INTO `publicacoes` (`Titulo`, `Subtitulo`, `Descricao`, `Foto`, `Status`, `Usuario`, `Data`) VALUES (:titulo, :sub, :descricao, :arquivo, :status, :usuario, :data);");
$cst->bindParam("titulo", $this->titulo, PDO::PARAM_STR);
$cst->bindParam(":sub", $this->sub, PDO::PARAM_STR);
$cst->bindParam(":descricao", $this->descricao, PDO::PARAM_STR);
$cst->bindParam(':arquivo', $nome_imagem, PDO::PARAM_STR);
$cst->bindParam(":status", $this->status, PDO::PARAM_STR);
$cst->bindParam(":usuario", $this->usuario, PDO::PARAM_STR);
$cst->bindParam(":data", $this->data, PDO::PARAM_STR);
if($cst->execute()){
header('location: blog.php');
}else{
echo '<script type="text/javascript">alert("Erro em armazenar os dados");</script>';
}
}else{
echo $error;
}
}else{
echo '<script type="text/javascript">alert("Escolha o arquivo para Upload");</script>';
}
}catch(PDOException $ex){
echo '<script type="text/javascript">alert("Error: '.$ex->getMessage().'");</script>';
}
}
Com esse formulário:
<form method="post" action="" name="upload" enctype="multipart/form-data">
<div class="form-row mt-3 ">
<div class="form-group col-md-6">
<img src="tracinhosnovos.png"> <label for="inputNomeCompleto">Titulo do Projeto</label>
<input type="text" class="form-control" id="titulo" placeholder="Título do Projeto" required name="titulo">
</div>
<div class="form-group col-md-6">
<img src="tracinhosnovos.png"> <label for="inputCPF">Subtitulo</label>
<input type="text" class="form-control" id="sub" placeholder="Subtitulo" required name="sub">
</div>
<div class="form-group col-md-12">
<img src="tracinhosnovos.png"> <label for="inputDataNascimento">Descrição</label>
<textarea class="form-control" id="descricao" name="descricao" placeholder="Fale sobre o seu projeto" rows="6"></textarea>
</div>
<div class="form-group">
<img src="tracinhosnovos.png"> <label for="exampleFormControlFile1">Adicione uma imagem ao seu projeto</label>
<input type="file" class="form-control-file" multiple="" id="foto" name="arquivo">
</div>
<div class="form-group" style="display: none;">
<label >Data Atual</label>
<input type="text" class="form-control" id="data" name="data" value="<?php echo date('d/m/Y');?>">
</div>
<div class="form-group" style="display: none;">
<label >Usuario Atual</label>
<input type="text" class="form-control" id="usuario" name="usuario" value="<?php echo $_SESSION['usuarioNome'];?>">
</div>
<div class="form-group" style="display: none;">
<label >Status</label>
<input type="text" class="form-control" id="status" name="status" value="Ativo">
</div>
Quero poder listar essas imagens que são adicionadas, e também queria adicionar mais de 1, Alguém pode me da uma ajuda ?Discussão (1)
Carregando comentários...