ecotuba 0 Denunciar post Postado Março 1, 2008 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
ecotuba 0 Denunciar post Postado Março 25, 2008 Please, alguém ai pode me ajudar? Grato Compartilhar este post Link para o post Compartilhar em outros sites
vitor_np 1 Denunciar post Postado Março 25, 2008 Fala aii da uma olha nesse tuto quem sabe ajuda http://phpbr.wordpress.com/2007/02/22/uplo...quivos-com-php/ Compartilhar este post Link para o post Compartilhar em outros sites
ecotuba 0 Denunciar post Postado Março 25, 2008 Valeu pelo post, mas não resolveu o meu case ainda, de qq forma obrigado, continuo na busca aqui e aceitando ajuda. Abraços Compartilhar este post Link para o post Compartilhar em outros sites