Upload de imagens no banco de dados
Olá pessoal, estou tendo dificuldade para cadastrar imagens no banco de dados.....
Tenho o seguinte código:
<form method="post" enctype="multipart/form-data">
<table width="463" border="0" align="center">
<tr>
<td width="235"><p>Nome da Imagem:</p></td>
<td width="218"><input type="text" name="nomeDaImg"></td>
</tr>
<tr>
<td><p>Categoria da Imagem:</p></td>
<td><label for="categorias"></label>
<select name="categorias" id="categorias">
<?php
$selecionaCategorias = mysql_query("SELECT * FROM categorias");
$conta = mysql_num_rows($selecionaCategorias);
if($conta = 0){
echo "Não existe nenhuma categoria ainda!";
}else{
while($linha = mysql_fetch_array($selecionaCategorias)){
?>
<option><?php echo $linha['nome'] ?></option>
<?php }} ?>
</select></td>
</tr>
<tr>
<td><p>Imagem: </p></td>
<td><input type="file" name="imagem"></td>
</tr>
<tr>
<td><input type="hidden" name="acao" value="cadastrar"></td>
<td><input type="submit" value="Adicionar Imagem"></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
$nomeDaImg = ucfirst(trim($_POST['nomeDaImg']));
$categorias = $_POST['categorias'];
//Upload de Imgs
$pasta = 'galeria';
$permite = array('image/jpg','image/jpeg','image/pjpeg');
$imagem = $_FILES['imagem'];
$destino = $imagem['tmp_name'];
$nome = $imagem['name'];
$tipo = $imagem['type'];
require('funcao.php');
if(empty($nomeDaImg) || empty($categorias)){
echo '<script>alert("Preencha todos os campos");</script>';
}else{
if(!empty($nome) && in_array($tipo, $permite)){
upload($destino, $nome, 200, $pasta);
$insereDados = mysql_query("INSERT INTO galeria (nome, categoria, img) VALUES ('$nomeDaImg','$categorias','$nome')");
echo '<script>alert("Enviado com sucesso!");</script>';
}else{
echo "Formato de imagem inválido!";
}
}
}
?>
e o código da funcao.php:
<?php
function upload($destino, $nome, $largura, $pasta){
$img = imagecreatefromjpeg($destino);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura * $y) / $x;
$novaImagem = imagecreatetruecolor($largura, $altura);
imagecopyresampled($novaImagem, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
imagejpeg($novaImagem, $pasta."/".$nome);
imagedestroy($img);
imagedestroy($novaImagem);
}
?>
O problema q tenho é que quando dou enviar, ele nao envia, cai no else{ imagem inválida....} mas não sei o que acontece e como consertar...
Esse script serve para a cadastrar uma imagem (o caminho dela no bd, a categoria que será inserida, e o upload da img) tudo isso, para que essas imagens, possam aparecer numa outra página, que seria a galeria...
O script do banco de dados da galeria é esse:
CREATE TABLE IF NOT EXISTS `galeria` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`img` varchar(500) NOT NULL,
`nome` varchar(500) NOT NULL,
`categoria` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Nessa tabela, gostaria de salvar o nome da img, o caminho dela (onde foi upada) e a categoria que eu selecionei aqui:
<label for="categorias"></label>
<select name="categorias" id="categorias">
<?php
$selecionaCategorias = mysql_query("SELECT * FROM categorias");
$conta = mysql_num_rows($selecionaCategorias);
if($conta = 0){
echo "Não existe nenhuma categoria ainda!";
}else{
while($linha = mysql_fetch_array($selecionaCategorias)){
?>
<option><?php echo $linha['nome'] ?></option>
<?php }} ?>
<option>Nenhuma categoria</option>
</select>
Alguém consegue encontrar o erro?
Discussão (16)
Carregando comentários...