Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ecotuba

p/ gravar multiplas fotos no bd

Recommended Posts

Olá Amigos

Estudei uns exemplos daqui e da net para fazer um sistema de envio de várias fotos e conteúdo, mas estou com problemas para gravar no BD, as fotos não estão sendo gravadas, segue as informações e se alguém puder me ajudar fico muito grato:

 

tabela fotos

CODE
CREATE TABLE `fotos` (

`id` int(11) NOT NULL auto_increment,

`status` char(3) default 'on',

`galeria` varchar(255) NOT NULL,

`titulo` varchar(50) NOT NULL,

`chamada` varchar(120) NOT NULL,

`autor` varchar(16) NOT NULL,

`contato` varchar(100) NOT NULL,

`data` char(10) NOT NULL,

`hora` char(5) NOT NULL,

`mini` varchar(255) NOT NULL,

`foto` varchar(255) NOT NULL,

`legenda` varchar(100) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Tabela fotos' ;

 

Form q passa a qtd de fotos: gera_fotos.php

CODE
<form name="form" method="post" action="cadastra.php" enctype="multipart/form-data" onSubmit="return verifica()">

 

<legend>Cadastro de fotos </legend>

<label for="qtd">Informe a qtd de fotos:</label>

<input type="text" name="qtd" id="qtd" size="2" />

<br />

 

<div id="boxBtn">

<input name="cadastrar" type="submit" class="botao" id="cadastrar" value="Enviar" />

<input name="limpar" type="reset" class="botao" id="limpar" value="Limpar" />

</div>

</form>

 

 

Form de envio: cadastra.php

CODE
<form name="form" method="post" action="insert.php" enctype="multipart/form-data">

<label for="galeria"> Galeria </label>

<input type="text" name="galeria" id="galeria" size="50" />

<br />

 

<label for="status">Status de exibição:</label>

<select name="status">

<option value="on">ON</option>

<option value="off">OFF</option>

</select>

<br />

 

<label for="titulo">Titulo:</label>

<input type="text" name="titulo" id="titulo" size="60" />

<br />

 

<label for="chamada">Chamada:</label>

<input type="text" name="chamada" id="chamada" size="60" />

<br />

 

<label for="autor">Autor:</label>

<input type="text" name="autor" id="autor" size="60" />

<br />

 

<label for="contato">Contato fotografo</label>

<input type="text" name="contato" id="contato" size="60" />

<br />

 

<label for="data">Data</label>

<input type="text" name="data" id="data" size="20" value="<?php echo $data2; ?>"/>

<br />

 

<label for="hora">Hora</label>

<input type="text" name="hora" id="hora" size="20" value="<?php echo $hora; ?>"/>

<br />

<?php

// Obtém quantidade enviada. Verificado se foi fornecido um número inteiro,

// caso contrário é usada uma quantidade padrão, 5.

$qtd = (isset($_POST['qtd']) && is_int(intval($_POST['qtd']))) ? (int)$_POST['qtd'] : 5;

?>

<h6>Envio de fotos</h6>

<label for='total'>Total de fotos<span class="info"> não altere</span></label>

<input type="text" name="total" id="total" value="<?php echo $qtd;?>" size="10"/><br>

 

<?

// Imprime os campos para upload, de acordo com a quantidade pedida

for($i = 1; $i <= $qtd; ++$i)

{

echo "<label for='arquivo'>Foto # $i </label>";

echo '<input type="file" name="arquivo[]" id="arquivo[]" size="20"/><br>';

 

echo "<label for='legenda'>Legenda # $i </label>";

echo '<input type="text" name="legenda[]" id="legenda[]" size="50"/><br>';

}

?>

 

<div id="boxBtn">

<input name="cadastrar" type="submit" class="botao" id="cadastrar" value="Enviar" />

<input name="limpar" type="reset" class="botao" id="limpar" value="Limpar" />

</div>

</form>

 

e a page q processa o envio: insert.php

CODE
<?php

$imagens = $_FILES['arquivo'];

$galeria = $_POST['galeria'];

$status = $_POST['status'];

$titulo = $_POST['titulo'];

$chamada = $_POST['chamada'];

$autor = $_POST['autor'];

$contato = $_POST['contato'];

$data = $_POST['data'];

$hora = $_POST['hora'];

$legenda = $_POST['legenda'];

$total = $_POST['total'];

 

for($g=0; $g < sizeof($imagens); $g++)

// for ($g = 0; $g < count($imagens); $g++)

if($nome = $_FILES['arquivo']['name'][$g] != ""){ // para campos vazios

{

$nome = $_FILES['arquivo']['name'][$g];

$tipo = $_FILES['arquivo']['type'][$g];

$tmpname = $_FILES['arquivo']['tmp_name'][$g];

 

//$renomear = md5(uniqid(rand(), true)); // nome aleatorio

$renomear = foto . _ . $g ; // nome aleatorio

$nome_grande = ($renomear . "-g.jpg"); // cria nome da imagem

$nome_thumb = ($renomear . "-p.jpg"); // cria nome da imagem

 

$matriz[] = $nome_grande;

$matriz_thumb[] = $nome_thumb;

 

$pasta_imagens_G = "../../fotos/galeria/kodak/G/" ; //diretorio pra onde vai a imagem grande

$pasta_imagens_P = "../../fotos/galeria/kodak/P/" ; //diretorio pra onde vai a imagem pequena

 

$caminho_G = $pasta_imagens_G . $nome; // caminho com nome da img grande e local para guardar

$caminho_P = $pasta_imagens_P . $nome; // caminho com nome da img pequena e local para guardar

 

//--------- CRIAR IMAGEM PROPORCIONAL -------------------------------------------

if(move_uploaded_file($tmpname, $caminho_G)) // move a tmp_name pro caminho dado

{

list($pontoX, $pontoY, $tipo) = getimagesize($caminho_G);

$img = imagecreatefromjpeg($caminho_G);

$largura_maxima = 400; //largura máxima

$altura_maxima = 300; //altura máxima

 

// se a altura e largura originais forem iguais

if ($pontoX == $pontoY) {

$largura = $largura_maxima;

$altura = $largura_maxima;

}

// se a largura for maior que a altura

elseif ($pontoX >= $pontoY) {

$nova_largura = $largura_maxima;

$nova_altura = ($pontoY*$nova_largura)/$pontoX;

// mas se depois da redução a altura for maior que $altura_maxima então reduz novamente

if ($nova_altura >= $altura_maxima) {

$altura = $altura_maxima;

$largura = ($nova_largura*$altura)/$nova_altura;

}

else {

$largura = $largura_maxima;

$altura = ($pontoY*$largura)/$pontoX;

}

}

elseif ($pontoX <= $pontoY) { // se a largura for menor que a altura

$nova_altura = $altura_maxima;

$nova_largura = ($pontoX*$nova_altura)/$pontoY;

// mas se depois da redução a largura for maior que a $largura_maxima então reduz novamente

if ($nova_largura >= $largura_maxima) {

$largura = $largura_maxima;

$altura = ($nova_altura*$largura)/$nova_largura;

}

else {

$altura = $altura_maxima;

$largura = ($pontoX*$altura)/$pontoY;

}

}

// aqui eu pego a imagem no caminho e jogo na memoria

$foto_grande = imagecreatetruecolor($largura, $altura);

imagecopyresampled($foto_grande, $img, 0, 0, 0, 0, $largura, $altura, $pontoX, $pontoY); // sample da imagem com o tamanho

imagejpeg($foto_grande, $pasta_imagens_G . $nome_grande, 80);

 

//-------------------------------------------------------------------------------------------

 

//-------------------------- CRIAR THUMB--------------------------//

// aqui eu pego a imagem no caminho e jogo na memoria

$thumbnail = imagecreatetruecolor(100, 75);

// sample da imagem com o tamanho

imagecopyresampled($thumbnail, $img, 0, 0, 0, 0, 100, 75, $pontoX, $pontoY);

 

imagejpeg($thumbnail, $pasta_imagens_P . $nome_thumb, 90);

 

unlink($caminho_G); // apaga a imagem original

echo '$caminho_G<br>';

//-------------------------------------------------------------------------------------------

} // if move_uploaded_file

}// fecha if dos campos vazios

}// for

 

//--------------------------Grava no banco--------------------------//

// -Banco de Dados - //

include "conexao.php";

$total = $_POST['total'];

 

for($i=0; $i<$total; $i++)

//for($i=0; $i < sizeof($total); $i++)

{//for

//gravando no bd

$res = mysql_query("insert into fotos (status, galeria, titulo, chamada, autor, contato, data, hora, mini, foto, legenda)

values (

'".$status."',

'".$galeria."',

'".$titulo."',

'".$chamada."',

'".$autor."',

'".$contato."',

'".$data."',

'".$hora."',

'" . $nome_thumb[$i] . "',

'" . $nome_foto[$i] . "',

'" . $legenda[$i] . "')");

if($res)

{

echo "Upload do arquivo $legenda[$i] foi um sucesso!<br>";

}

else

{

echo "Upload do arquivo $legenda[$i] não foi concluido!<br>";

}

}//fim do for

//--------------------------Grava no banco--------------------------//

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.