Cerrito 0 Denunciar post Postado Fevereiro 27, 2004 pessoal minha duvida é a seguinte...tenho um diretório com mais de 2000 imagens e quero cadastra-las no mysql, tem alguma forma de mandar o mysql ler esse diretório e gravar os nomes das imagens...e a cada nova imagem nesse diretório ele já a cadastrasse?ou algo parecido???desde já agradeço ajuda de todos...isso iria me poupar muito, mas muito tempo...abraçosMarcio Compartilhar este post Link para o post Compartilhar em outros sites
webvp 0 Denunciar post Postado Fevereiro 27, 2004 Acho que tem sim.Nunca tentei, mas é uma boa idéia. Vou tentar, depois posto o resultado. Compartilhar este post Link para o post Compartilhar em outros sites
Keitaro 0 Denunciar post Postado Fevereiro 27, 2004 o mysql acho q n faria isso, pq ele é apenas um banco de dados, nao tem suporte para leitura de diretorios. O que pode ser feito é usar PHP para varrer o diretorio e colocar o arquivo no DB.você iria querer q tipos de informacao? so o nome da imagem? qnto fields seriam?A unica coisa de ruim q teria, seria na hora de verificar se ha imagens nova, ele teria q fazer um loop completo e ver se a imagem existe no DB ou n, qndo n existir ele insere a imagem... n sei se isso poderia acabar afetando o DB... mas é possivel..leia a doc do readdir() do pHP Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Fevereiro 27, 2004 O script abaixo (que está em www.php.net) lista os arquivos de um determinado diretório, se você der uma "estudada" nela pode adaptar para sua necessidade. function direcho($path) { global $filetotal, $fullsize, $totaldirs; if ($dir = opendir($path)) { while (false !== ($file = readdir($dir))) { if (is_dir($path."/".$file)) { // if it's a dir, check it's contents too if ($file != '.' && $file != '..') { // but dont go recursive on '.' and '..' echo '<li><b>' . $file . '</b></li><ul>'; direcho($path."/".$file); echo '</ul>'; $totaldirs++; } } else { //if it's not a dir, just output. $tab = " "; $filesize = $tab . '(' . filesize ($path.'/'.$file) . ' kb)'; echo '<li>' . $file . $filesize . '</li>'; $fullsize = $fullsize + filesize ($path.'/'.$file); $filetotal++; } } closedir($dir);}}direcho('c:/seu_diretorio');$fullsize = round($fullsize / 1024 / 1024, 2);echo"<br><br><b>Total files</b> - $filetotal files<br><b>Total dirs</b> - $totaldirs directories<br><b>Total size</b> - $fullsize MB<br>";?> Espero que lhe ajude. Compartilhar este post Link para o post Compartilhar em outros sites
webvp 0 Denunciar post Postado Fevereiro 27, 2004 Fiz este script com ajuda de um tutorial do Júlio (coluna PHP Imasters), apenas adicionei linhas de conexão e inclusão na base de dados, ainda irei fazer testes para verificação do nome já gravado na base para não gravar novamente. Este script apenas grava o nome, também não tentei gravar a imagem propriamente dita. Fiquem a vontade para alterar e postar aqui outras alterações. Foi apenas objeto de estudo, pela sugestão em questão levantada. <?$con = mysql_connect("localhost","","");$db = mysql_select_db("imasters",$con);//Exibe os diretórios que tem na pasta if ($dir=opendir("d:/server_hps/imagens/produtos/categorias/")) { //Diretório a ser vasculhado $i=1;?> <br> <table width="95%" border="0" cellspacing="1" cellpadding="0" align="center"> <tr bgcolor="cccccc"> <td width="17%"> <div align="center"><b><font face="Arial" size="2">Auto Numeração</font></b></div></td> <td width="54%"> <div align="center"><b><font face="Arial" size="2">Descrição</font></b></div></td> <td width="29%"> <div align="center"><b><font face="Arial" size="2">É diretório ?</font></b></div></td> </tr> <? while(($arquivos=readdir($dir)) !== false){ if($arquivos=="." or $arquivos=="..") continue; { ?> <tr bgcolor="ebebeb"> <td width="17%"><div align="center"><font face="Arial" size="2"><? echo $i;?></font></div></td> <td width="54%"><div align="center"><font face="Arial" size="2"><? echo $arquivos;?></font></div></td> <td width="29%"><div align="center"><font face="Arial" size="2"><? if(is_dir($arquivos)) echo "SIM"; else echo "NÃO";?></font></div></td> </tr> <? $i++; //Incrementa a variável i $sql = mysql_query("insert into fotos (name) values('$arquivos')"); }//fecha if } //fecha while ?></table><? } /*fecha if*/ ?></body></html> fui... Compartilhar este post Link para o post Compartilhar em outros sites
Keitaro 0 Denunciar post Postado Fevereiro 27, 2004 para evitar inclusao igual, basta por o campo onde tera o nome da imagem com valor UNIQUE, e por na frente do mysql_query o @, ficando @mysql_query("insert into fotos (name) values('$arquivos')"); Compartilhar este post Link para o post Compartilhar em outros sites
webvp 0 Denunciar post Postado Fevereiro 27, 2004 é isso aí Keitaro, eu fiz o script rapidinho só para teste. Mas valeu a dica para a galera menos avisada.webvpprogramador web Compartilhar este post Link para o post Compartilhar em outros sites
Cerrito 0 Denunciar post Postado Março 2, 2004 valeu pelas dicas e codigos galera...valeu mesmo!!!Marcio Compartilhar este post Link para o post Compartilhar em outros sites