tomwp 0 Denunciar post Postado Dezembro 15, 2007 Olá Comunidade, sou novo aqui e ja vim com duvidas hehehehe... bom minha duvida é o seguinte...estou com um codigo PHP ondi ele faz o upload de fotos para o servidor..até ai certo..só que nao tem q ser só isso...preciso que nesse mesmo codigo tenha a legenda para cada foto em um input type. como faço isso? ai vai o codigo: <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos//'; $i = 0; $msg = array( ); $arquivos = array( array( ) ); foreach( $_FILES as $key=>$info ) { foreach( $info as $key=>$dados ) { for( $i = 0; $i < sizeof( $dados ); $i++ ) { $arquivos[$i][$key] = $info[$key][$i]; } } } $i = 1; // Fazemos o upload normalmente, igual no exemplo anterior foreach( $arquivos as $file ) { if( $file['name'] != '' ) { $arquivoTmp = $file['tmp_name']; $arquivo = $pathToSave.$file['name']; if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } } else { $msg[$i] = sprintf('O arquivo %d nao foi preenchido',$i); } $i++; } foreach( $msg as $e ) { printf('%s<br>', $e); } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo[]'><br> Arquivo2: <input type='file' name='arquivo[]'><br> Arquivo3: <input type='file' name='arquivo[]'><br> Arquivo4: <input type='file' name='arquivo[]'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> Desde já, Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Dezembro 15, 2007 Ola tomwp, bem vindo ao forum, e parabens pelo seu primeiro post estar dentro das tags CODE ^^ São raros os que o fazem no primeiro post =) bem, ve ae =) <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos//'; $arquivos = $_FILES; $legenda = $_POST['legenda']; for($i=0; $i<count($arquivos); $i++) { $file = $arquivos[$i]; $arquivoTmp = $file['tmp_name']; $arquivo = $pathToSave.$file['name']; if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $fp = fopen($arquivo.".txt", "w"); fwrite($fp, $legenda[$i]); fclose($fp); $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo[]'><br> Legenda1: <input type='text' name='legenda[]'><br> Arquivo2: <input type='file' name='arquivo[]'><br> Legenda2: <input type='text' name='legenda[]'><br> Arquivo3: <input type='file' name='arquivo[]'><br> Legenda3: <input type='text' name='legenda[]'><br> Arquivo4: <input type='file' name='arquivo[]'><br> Legenda4: <input type='text' name='legenda[]'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> Não testei, mas deve funcionar, se não funcionar, é alguma sintaxe, mas a idéia é essa =) Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 Ola tomwp, bem vindo ao forum, e parabens pelo seu primeiro post estar dentro das tags CODE ^^ São raros os que o fazem no primeiro post =) bem, ve ae =) <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos//'; $arquivos = $_FILES; $legenda = $_POST['legenda']; for($i=0; $i<count($arquivos); $i++) { $file = $arquivos[$i]; $arquivoTmp = $file['tmp_name']; $arquivo = $pathToSave.$file['name']; if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $fp = fopen($arquivo.".txt", "w"); fwrite($fp, $legenda[$i]); fclose($fp); $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo[]'><br> Legenda1: <input type='text' name='legenda[]'><br> Arquivo2: <input type='file' name='arquivo[]'><br> Legenda2: <input type='text' name='legenda[]'><br> Arquivo3: <input type='file' name='arquivo[]'><br> Legenda3: <input type='text' name='legenda[]'><br> Arquivo4: <input type='file' name='arquivo[]'><br> Legenda4: <input type='text' name='legenda[]'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> Não testei, mas deve funcionar, se não funcionar, é alguma sintaxe, mas a idéia é essa =) heehhe Obrigado Scorn. Bom fiz o teste aqui, nao deu certo nao. Agora nem a foto está indo mais para a pasta "fotos" para adicionar essa descriçao para o banco de dados nao teria que ter algum INSERT INTO no codigo? EDIT: pq essa "legenda" que eu digo seria uma descricao que vai para o banco de dados como text e depois aparece no site de baixo da foto. Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Dezembro 15, 2007 To fazendo e testando aqui, ja posto pra você ok? =) Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 To fazendo e testando aqui, ja posto pra você ok? =)claro Scorn, tranquilo brother....a noite é uma criança hehehe to sem sono tambem http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif espero sim. Obrigado mesmo! Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Dezembro 15, 2007 Como se fosse demorar ^^ agora ta filé, ta até funcionando =) <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos/'; $legendas = $_POST['legenda']; $arquivos = $_FILES['arquivo']; // Conecta ao banco, mude a senha, o usuario, e o nome do banco mysql_connect("localhost", "root", ""); mysql_select_db("teste"); // Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la for($i=0; $i<4; $i++) { if($arquivos['name'][$i] == '') { continue; } $arquivoTmp = $arquivos['tmp_name'][$i]; $arquivo = $pathToSave.$arquivos['name'][$i]; if(!move_uploaded_file($arquivoTmp, $arquivo)) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $res = mysql_query("insert into fotos (arquivo, legenda) values ('" . $arquivo . "', '" . $legendas[$i] . "')"); if($res) { $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } else { $msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i); } } } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo[]'><br> Legenda1: <input type='text' name='legenda[]'><br> Arquivo2: <input type='file' name='arquivo[]'><br> Legenda2: <input type='text' name='legenda[]'><br> Arquivo3: <input type='file' name='arquivo[]'><br> Legenda3: <input type='text' name='legenda[]'><br> Arquivo4: <input type='file' name='arquivo[]'><br> Legenda4: <input type='text' name='legenda[]'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 caramba Scorn num deu nem tempo de eu ir comer hehehehe ^_^ bom ja testei e deu certo sim mas o esquema é o seguinte..sao 7 fotos entao la no BD eu tenho que por 7 campos pra fotos e 7 campos pra legenda certo? pode ser assim o nome dos campos la legenda1 legenda2 ... ???ou tem q fazer de outro jeito? Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Dezembro 15, 2007 não, no formulario você vai ter que ter 14 campo, 7 pra arquivo, 7 pra legenda e no for, ele vai até 7 Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 não, no formulario você vai ter que ter 14 campo, 7 pra arquivo, 7 pra legenda e no for, ele vai até 7 sim..isso eu inclui ja...to dizendo la no phpmyadmin..os nomes dos campos serao na sequencia? arquivo1, arquivo2, arquivo3 .... lengenda1, legenda2, legenda3... os nomes tem q por esses? pq eu fiz desse jeito e nao ta xegando a legenda para o BD. Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 certo...consegui só que eu vi no phpmyadmin que as fotos adicionadas com a legenda sao uma por uma...com cada ID diferente...e no meu caso tinha que ser em um mesmo ID as 7 fotos e as 7 legendas..ai eu fiz esse codigo mas nao esta dando certo: <? session_start(); if (session_is_registered("idusuario")) { ?> <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos/'; $legenda1 = $_POST['legenda1']; $legenda2 = $_POST['legenda2']; $legenda3 = $_POST['legenda3']; $legenda4 = $_POST['legenda4']; $arquivo1 = $_FILES['arquivo1']; $arquivo2 = $_FILES['arquivo2']; $arquivo3 = $_FILES['arquivo3']; $arquivo4 = $_FILES['arquivo4']; // Conecta ao banco, mude a senha, o usuario, e o nome do banco require_once('conexao.php'); // Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la for($i=0; $i<4; $i++) { if($arquivos['name'][$i] == '') { continue; } $arquivoTmp = $arquivos['tmp_name'][$i]; $arquivo = $pathToSave.$arquivos['name'][$i]; if(!move_uploaded_file($arquivoTmp, $arquivo)) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $res = mysql_query("insert into fotos (arquivo1, arquivo2, arquivo3, arquivo4, legenda1, legenda2, legenda3, legenda4) values ('" . $legenda1 . "', '" . $legenda2 . "', '" . $legenda3 . "', '" . $legenda4 . "', '" . $arquivo1 . "', '" . $arquivo2 . "', '" . $arquivo3 . "', '" . $arquivo4 . "')"); if($res) { $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } else { $msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i); } } } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo1'><br> Legenda1: <input type='text' name='legenda1'><br> Arquivo2: <input type='file' name='arquivo2'><br> Legenda2: <input type='text' name='legenda2'><br> Arquivo3: <input type='file' name='arquivo3'><br> Legenda3: <input type='text' name='legenda3'><br> Arquivo4: <input type='file' name='arquivo4'><br> Legenda4: <input type='text' name='legenda4'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> <? } else header("Location: area.php"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 15, 2007 Seja bem-vindo ao iMasters! :D Como o ScornInPC disse, código organizado no primeiro post é raro. Parabéns! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Como é a sua tabela? É como se fosse um sistema de cadastro, em que as fotos estão relacionadas a um usuário ou a uma infomração? Se for, aconselho criar uma tabela somente para as fotos, relacionada com a tabela de usuários/informações. A lógica é semalhante à deste artigo: http://www.tmferreira.com.br/blog/2007/07/...-um-erro-comum/ Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 Seja bem-vindo ao iMasters! :D Como o ScornInPC disse, código organizado no primeiro post é raro. Parabéns! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Como é a sua tabela? É como se fosse um sistema de cadastro, em que as fotos estão relacionadas a um usuário ou a uma infomração? Se for, aconselho criar uma tabela somente para as fotos, relacionada com a tabela de usuários/informações. A lógica é semalhante à deste artigo: http://www.tmferreira.com.br/blog/2007/07/...-um-erro-comum/ Opa Beraldo, entao a minha tabela la no BD sao 7 lugares para por legenda e 7 para por as fotos, mas tem que ser no mesmo ID...aqui segue o codigo do meu BD: # # Estrutura da tabela `fotos` # CREATE TABLE fotos ( idfoto int(11) NOT NULL auto_increment, legenda text NOT NULL, legenda1 text NOT NULL, legenda2 text NOT NULL, legenda3 text NOT NULL, legenda4 text NOT NULL, legenda5 text NOT NULL, legenda6 text NOT NULL, legenda7 text NOT NULL, arquivo1 varchar(255) NOT NULL default '', arquivo2 varchar(255) NOT NULL default '', arquivo3 varchar(255) NOT NULL default '', arquivo4 varchar(255) NOT NULL default '', arquivo5 varchar(255) NOT NULL default '', arquivo6 varchar(255) NOT NULL default '', PRIMARY KEY (idfoto) ) TYPE=MyISAM; Compartilhar este post Link para o post Compartilhar em outros sites
ScornInPC 1 Denunciar post Postado Dezembro 15, 2007 Mas ai tem 8 campos de legenda e 6 de arquivo O.o' ^^ Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 Mas ai tem 8 campos de legenda e 6 de arquivo O.o' ^^huasuhas ^_^ nem tinha visto...vou mudar aqui e ja passo o codigo de novo...só que mesmo assim se eu mudar isso e deixar 7 para cada vai enviar do jeito que eu to falando? um ID para todas as fotos e legendas?? a programacao que montei ai vai dar certo? abraços... Compartilhar este post Link para o post Compartilhar em outros sites
tomwp 0 Denunciar post Postado Dezembro 15, 2007 entao eu mudei la..agora ta 7 pra cada... # # Estrutura da tabela `fotos` # CREATE TABLE fotos ( idfoto int(11) NOT NULL auto_increment, legenda1 text NOT NULL, legenda2 text NOT NULL, legenda3 text NOT NULL, legenda4 text NOT NULL, legenda5 text NOT NULL, legenda6 text NOT NULL, legenda7 text NOT NULL, arquivo1 varchar(255) NOT NULL default '', arquivo2 varchar(255) NOT NULL default '', arquivo3 varchar(255) NOT NULL default '', arquivo4 varchar(255) NOT NULL default '', arquivo5 varchar(255) NOT NULL default '', arquivo6 varchar(255) NOT NULL default '', arquivo7 varchar(255) NOT NULL default '', PRIMARY KEY (idfoto) ) TYPE=MyISAM; soh que mesmo assim nao ta dando certo, pq nem la na pasta de fotos esta indo as imagens =/ ondi esta errado no codgio? o codigo esta aqui: <? session_start(); if (session_is_registered("idusuario")) { ?> <?php if( isset( $_POST['enviar'] ) ) { $pathToSave = 'fotos/'; $legenda1 = $_POST['legenda1']; $legenda2 = $_POST['legenda2']; $legenda3 = $_POST['legenda3']; $legenda4 = $_POST['legenda4']; $arquivo1 = $_FILES['arquivo1']; $arquivo2 = $_FILES['arquivo2']; $arquivo3 = $_FILES['arquivo3']; $arquivo4 = $_FILES['arquivo4']; // Conecta ao banco, mude a senha, o usuario, e o nome do banco require_once('conexao.php'); // Repare que aqui, tem um 4, esse 4, pq tenho 4 campos no formulario, se tiver mais, mude para a quantidade que tiver la for($i=0; $i<4; $i++) { if($arquivos['name'][$i] == '') { continue; } $arquivoTmp = $arquivos['tmp_name'][$i]; $arquivo = $pathToSave.$arquivos['name'][$i]; if(!move_uploaded_file($arquivoTmp, $arquivo)) { $msg[$i] = 'Erro no upload do arquivo '.$i; } else { $res = mysql_query("insert into fotos (arquivo1, arquivo2, arquivo3, arquivo4, legenda1, legenda2, legenda3, legenda4) values ('" . $legenda1 . "', '" . $legenda2 . "', '" . $legenda3 . "', '" . $legenda4 . "', '" . $arquivo1 . "', '" . $arquivo2 . "', '" . $arquivo3 . "', '" . $arquivo4 . "')"); if($res) { $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i); } else { $msg[$i] = sprintf('Upload do arquivo %s não foi concluido!',$i); } } } } ?> <form method='POST' enctype='multipart/form-data'> Arquivo1: <input type='file' name='arquivo1'><br> Legenda1: <input type='text' name='legenda1'><br> Arquivo2: <input type='file' name='arquivo2'><br> Legenda2: <input type='text' name='legenda2'><br> Arquivo3: <input type='file' name='arquivo3'><br> Legenda3: <input type='text' name='legenda3'><br> Arquivo4: <input type='file' name='arquivo4'><br> Legenda4: <input type='text' name='legenda4'><br> <br> <input type='submit' value='Enviar' name='enviar'> </form> <? } else header("Location: area.php"); ?> espero resposta... Abraços! Compartilhar este post Link para o post Compartilhar em outros sites