will_pHp 0 Denunciar post Postado Maio 5, 2009 este script faz upload múltiplo de jpg, jpeg, gif e png, qualquer problema basta deixar uma mensagem que respondo todas <?php include("config.php"); if($_GET['action']=='foto'){ $num = $_POST['id']; $campos = $_POST['campos']; $dir = "downloads/$num"; //tamanhos para criar as thumbs $largura_final = 160; $altura_final = 110; @mkdir($dir); if ($handle = @opendir($dir)) { while (false !== ($filez = readdir($handle))){ if ($filez != "." && $filez != ".."){ $filez = substr($filez,0,-4); $filez2.="$filez-*-";}} $filez2 = substr($filez2, 0, -3); $filez3 = explode("-*-", $filez2); natsort ($filez3); $quanti = count($filez3); $quanti--; $y = $filez3[$quanti]; $y = substr($y, -2); closedir($handle);} $f_name = $_FILES['file']['name']; $f_tmp = $_FILES['file']['tmp_name']; $f_type = $_FILES['file']['type']; $cont=0; $p = $y; $desc = $_POST['desc']; for($i=0;$i<$campos;$i++){ $name = $f_name[$i]; $file = explode(".",$name); $filec = count($file); $filec = $filec-1; $file = $file[$filec]; $descr = $desc[$i]; $patha = $dir."$num"."$name"; $nome = "$num"."$name"; if ( ($name!="") and (is_file($f_tmp[$i]))){ if ($cont==0){ echo "<b>Arquivo(s) enviados:<br /></b>"; } echo $patha." - "; $up = move_uploaded_file($f_tmp[$i], $patha); //criar thumb a função verifica a extensão do arquivo e cria a thumb a partir disso if(preg_match("/.jpg/i", "$nome")){ $format = 'image/jpeg'; } if (preg_match("/.gif/i", "$nome")){ $format = 'image/gif'; } if(preg_match("/.png/i", "$nome")){ $format = 'image/png'; } if($format!=''){ $tamanho = getimagesize($dir.$nome); $largura_fonte = $tamanho[0]; $altura_fonte = $tamanho[1]; switch($format){ case 'image/jpeg': $source = imagecreatefromjpeg($dir.$nome); break; case 'image/gif'; $source = imagecreatefromgif($dir.$nome); break; case 'image/png': $source = imagecreatefrompng($dir.$nome); break; } $nome_thumb = substr($nome,0,strpos($nome,"."))."_thumb".substr($nome,strpos($nome,".")); $imagem_destino = imagecreatetruecolor($largura_final,$altura_final); imagealphablending($imagem_destino, false); imagecopyresized($imagem_destino, $source, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte); @imagejpeg($imagem_destino, $dir.$nome_thumb, 70); imagedestroy($source); imagedestroy($imagem_destino); } //fim do thumb if ($up==true): echo "<i>Enviado!</i>"; $cont++; $qry = mysql_query("INSERT INTO sua_tabela (nome,foto,thumb) VALUES ('$descr','$nome','$nome_thumb')"); else: echo "<i>Falhou!</i>"; endif; echo "<br />"; } } echo ($cont!=0) ? "<script>alert(\"Total de arquivos enviados: $cont\"); location.href=\"index.php\"</script>": "<script>alert(\"Nenhum arquivo foi enviado!\"); location.href=\"index.php\"</script>"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Maio 14, 2009 Cara muito bom... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Só uma coisinha que você deveria fazer: liberar espaço na memórica com imagedestroy($source); imagedestroy($imagem_destino); Compartilhar este post Link para o post Compartilhar em outros sites
will_pHp 0 Denunciar post Postado Maio 25, 2009 é cara eu ja tinha sacado isso a um tempo, so q as vezes sou tomado pela preguiça, meu mal, mais valeu mesmo pela dica, ja inclui no script, se precisar d ajuda em algo so da um tok, vlw Compartilhar este post Link para o post Compartilhar em outros sites
formigoni 0 Denunciar post Postado Maio 29, 2009 Como seria o form de envio para esse exemplo? Valeu e fica na paz. Compartilhar este post Link para o post Compartilhar em outros sites
will_pHp 0 Denunciar post Postado Maio 30, 2009 Como seria o form de envio para esse exemplo? Valeu e fica na paz. você pode fazer da seguinte forma, como eu usei: http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif <?php $a = 1; $c = $_GET['cps']; while($a<=$_GET['cps']){ echo " <label>Nome <i>$a</i>:</label> <input name=\"nome$a\" type=\"text\" size=\"88\" /> <label>Campo <i>$a</i>:</label> <textarea name=\"campo$a\" wrap=\"virtual\" rows=\"5\" cols=\"86\"></textarea><br />"; $a++;} echo "<input type=\"hidden\" name=\"campos\" value=\"$c\">"; ?> <br /> <input type="submit" name="Submit" value="Enviar" /> </p> </form> <center> <?php $ma = $c + 1; echo "[ <a href=\"sua_pagina.php?cps=$ma\">Adicionar um campo</a> | "; $me = $c -1; echo "<a href=\"sua_pagina.php?cps=$me\">Retirar um campo</a> ]"; ?> ñ esqueça de usar o form assim: <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> qualquer dúvida posta ai Compartilhar este post Link para o post Compartilhar em outros sites
Will Fernando 2 Denunciar post Postado Maio 30, 2009 boa chara .. viu .. mas conta ae como tu conseguiu faze funciona o mkdir ?? eu vi varios topicos e eu mesmo ja tive esse problema que quando cria a pasta ele nao da permissao pra alterar o conteudo e nem alterar as permisoes ? **por enquanto nao vi solucao pra esse problema .. mah flwa ae como ceh conseguiu ??? valww *obs: script ta legal mas acho que ainda dava pra trabalha mais a segurança ^^ *opiniao Compartilhar este post Link para o post Compartilhar em outros sites
will_pHp 0 Denunciar post Postado Maio 31, 2009 ai no caso eu ja tinha criado a pasta q se chama "downloads" no caso você poderia fazer da seguinte forma: @mkdir ("$dir", 0777); onde 0777 é permissão de escrita, ou seja, você ja cria a pasta com permissão de escrita. seria bom melhorar a segurança, tipo, verificar o mime type do arquivo, tamanho, peso, etc e tal. podemos fazer isso sim, v oq pode ser melhorado, se quiser alterar e disponibilizar aqui no forum se sinta a vontade. outra coisa: em breve vou disponibilizar um tutorial passo-a-passo de como instalar apache +php +mysql no windows xp 64bit, por enquanto estou testando aqui. Compartilhar este post Link para o post Compartilhar em outros sites
cassiano óliver 1 Denunciar post Postado Junho 6, 2009 detalhe, o IE tem alguns mimes diferentes... jpg = image/pjpeg Compartilhar este post Link para o post Compartilhar em outros sites
will_pHp 0 Denunciar post Postado Junho 15, 2009 bom galera agora disponibilizando um form de upload desse sistema para ficar mais fácil o pessoal pegar a coisa. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>exemplo1</title> <script type="text/javascript"> var mainDivName = 'eventDates'; function addEvent(){ var ni = document.getElementById(mainDivName); var numi = document.getElementById('campos'); var num = (document.getElementById("campos").value -1)+ 2; numi.value = num; var divIdName = "eventDate"+num+"Div"; var newdiv = document.createElement('div'); newdiv.setAttribute("id",divIdName); newdiv.innerHTML = "<label>Descrição:</label><input type=\"text\" name=\"desc[]\" size=\"38\"><label>Imagem:</label><input type=\"file\" name=\"file[]\" size=\"44\"> <a href=\"#\" onclick=\"removeEvent(\'"+divIdName+"\')\"> [x]</a><hr>"; ni.appendChild(newdiv); } function removeEvent(divNum){ var d = document.getElementById(mainDivName); var olddiv = document.getElementById(divNum); d.removeChild(olddiv); } </script> </head> <body> <form method="post" action="upload.php?action=foto" enctype="multipart/form-data"> <input type="hidden" name="campos" value="0" id="campos" /> <div id="eventDates"></div> <input type="submit" name="submit" value="Inserir Fotos"> <center>[ <a href="#" onClick="addEvent();">Adicionar campos</a> ] </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Alexandre Broggio 9 Denunciar post Postado Junho 19, 2009 Um form simples e com muitos recursos e a class do verot seque o linkl para ela, com poucas linhas pode se ter inumeras configurações para o upload http://www.verot.net/php_class_upload_samples.htm Compartilhar este post Link para o post Compartilhar em outros sites
will_pHp 0 Denunciar post Postado Julho 24, 2009 Um form simples e com muitos recursos e a class do verot seque o linkl para ela, com poucas linhas pode se ter inumeras configurações para o upload http://www.verot.net/php_class_upload_samples.htm classe interessante, depois vou tentar criar alguma coisa com ela Compartilhar este post Link para o post Compartilhar em outros sites
PHS_StudioWeb 0 Denunciar post Postado Setembro 3, 2009 Tenho uma dúvida. Eu não quero estipular a largura e a altura do thumb, somente a largura, e que a altura fique proporcional a largura, como posso alterar o código para fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Brayan Rastelli 2 Denunciar post Postado Setembro 4, 2009 $largura_final = 160; $altura_final = 110; altera os dois .. de maneira proporcional http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Compartilhar este post Link para o post Compartilhar em outros sites