0

Upload de Imagens com redimensionamento, inserir Marca D'agua e

criado por Marcos em 29/12/2011 5:47pm
Salve salve rapaziada, como o próprio título diz, segue os códigos em 3 arquivos comentados, utilizando PDO no PHP para tal façanha, eu iria fazer uma vídeo-aula, mas no final todo mundo pede pra disponibilizar o código então segue-os em 3 arquivos:Mais informações no blog:
http://marcospinguim.blogspot.com/
Data Autor Changelog Download
29/12/2011 5:47pm Marcos Versão 0.1 Versão 0.1

Comentários:

Mostrando 1 - 4 de 4 comentários
Utilize a classe thumbs.php que é muito melhor: Você pôde fazer upload sem utilizar códigos grandes, é fácil de implementar(o memso código de uma imagem simples) e ainda por cima permite uso de marca dágua.Pra completar, a imagem é gerada dinamicamente, podenso recuperar a imagem sem marca dágua no servidor.Muito melhor do que este código, e mais facil de se implementar.
24/02/2012 12:51am (~12 anos atrás)

Eder Souza disse:
Estou estudando PHP PDO e to com uma baita dúvida. Precisava inserir nesse mesmo código ainda duas variáveis $sliderTitle e $sliderText, se eu usar o mesmo INSERT da imagem pra isso ele cadastra tudo certinho, deleta a linha da tabela dentro do banco de dados, porem perde a função de limitar upload e de deletar a imagem upada dentro da pasta. Sei que parece uma dúvida besta mais pra mim tem gerado mta dor de cabeça...

<?php if(isset($_POST['executar']) && $_POST['executar'] == 'Publicar'){

$imgId = $_POST['imgId'];

$sql_limitaUpload = 'SELECT * FROM adjdr_slider WHERE imgId = :imgId';
try{
$query_limitaUpload = $conecta->prepare($sql_limitaUpload);
$query_limitaUpload->bindValue(':imgId',$imgId,PDO::PARAM_STR);
$query_limitaUpload->execute();

$count_limitaUpload = $query_limitaUpload->rowCount(PDO::FETCH_ASSOC);

}catch(PDOexception $error_limitaUpload){
echo 'Erro ao limitar upload'.$error_limitaUpload->getMessage();
}

if($count_limitaUpload >= '1'){
echo '<div class="warning">Você só pode enviar uma imagem por slide!</div>';
}else{


$imovelThumb = $_FILES['img'];
$imovelPasta = '../uploads/';
$imgPermitido = array('image/jpg','image/jpeg','image/pjpg');
$contarImg = count($imovelThumb['name']);
require("sistema/upload.php");

for($i=0;$i<$contarImg;$i++){
$imagemNome = $imovelThumb['name'][$i];
$imagemCaminho = $imovelThumb['tmp_name'][$i];
$imagemTipo = $imovelThumb['type'][$i];

if(!empty($imagemNome) && in_array($imagemTipo, $imgPermitido)){
$nome = 'cliente='.$clienteId.'-'.md5(uniqid(rand(), true)).'.jpg';
Redimensionar($imagemCaminho, $nome, 500, $imovelPasta);

$sql_cadastraImagem = 'INSERT INTO adjdr_slider (imgId, sliderImg) ';
$sql_cadastraImagem .= 'VALUES (:imgId, :nome)';

try{
$query_cadastraImagem = $conecta->prepare($sql_cadastraImagem);
$query_cadastraImagem->bindValue(':imgId',$imgId,PDO::PARAM_STR);
$query_cadastraImagem->bindValue(':nome',$nome,PDO::PARAM_STR);
$query_cadastraImagem->execute();

echo '<div class="ok">Imagem cadastrada, envie outra!</div>';

}catch(PDOexception $erroImagem){
echo 'Erro ao cadastrar imagem';
}


}else{
echo '<div class="no">Imagem inválida</div>';
}
}
}
}?>


<form name="cadastraSlider" action="" method="post" enctype="multipart/form-data">

<label>
<span>Imagems:</span>
<input type="file" name="img[]" size="60" />
</label>

<input type="hidden" name="imgId" value="<?php echo $imgId;?>" />

<input type="submit" name="executar" id="executar" value="Publicar" />

</form>


<?php if(isset($_POST['executar']) && $_POST['executar'] == 'Excluir'){
$sliderId = $_POST['sliderId'];
$sliderImg = $_POST['sliderImg'];

$sql_deletaImg = 'DELETE FROM adjdr_slider WHERE sliderId = :sliderId';
try{
$query_deletaImg = $conecta->prepare($sql_deletaImg);
$query_deletaImg->bindValue(':sliderId',$sliderId,PDO::PARAM_STR);
$query_deletaImg->execute();

$pastaDel = '../uploads';
unlink($pastaDel.'/'.$sliderImg);
echo '<div class="ok">Excluida</div>';

}catch(PDOexception $error_delImg){
echo 'Erro ao excluir';
}
}

?>



<?php

$sql_pegaImagem = 'SELECT * FROM adjdr_slider WHERE imgId = :imgId';
try{
$query_pegaImagem = $conecta->prepare($sql_pegaImagem);
$query_pegaImagem->bindValue(':imgId',$imgId,PDO::PARAM_STR);
$query_pegaImagem->execute();

$resultado_pegaImagem = $query_pegaImagem->fetchAll(PDO::FETCH_ASSOC);

}catch(PDOexception $error_pegaImagem){
echo 'Erro ao selecionar imagens';
}

foreach($resultado_pegaImagem as $resImagem){
$sliderId = $resImagem['sliderId'];
$sliderImg = $resImagem['sliderImg'];
$nome = $res['nome'];
$imgId = $res['imgId'];


?>


<span class="imagem"><img src="../uploads/<?php echo $sliderImg;?>" width="100" alt="Exibição" /></span>
<form name="execluirImagem" action="" enctype="multipart/form-data" method="post">
<input type="hidden" name="imgId" value="<?php echo $imgId;?>" />
<input type="hidden" name="sliderId" value="<?php echo $sliderId;?>" />
<input type="hidden" name="sliderImg" value="<?php echo $sliderImg;?>" />
<input type="submit" name="executar" id="executar" value="Excluir" />
</form>


<?php
}
?>

27/01/2012 11:22pm (~12 anos atrás)

Marcos disse:
Opa Isael Ferreira!
Conforme solicitado, segue o imagens.sql :

-- MySQL dump 10.13 Distrib 5.1.58, for debian-linux-gnu (i486)

DROP TABLE IF EXISTS `img`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `img` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`arquivo` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

-- Dump completed on 2012-01-03 19:14:38
03/01/2012 7:15pm (~12 anos atrás)

Cara enviar envia só não grava no banco de dados, já verifiquei a conexão e talz, teria como disponibilizar o banco de dados também ?
31/12/2011 8:56pm (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)