
Carlos Rocha
Membros-
Total de itens
1.302 -
Registro em
-
Última visita
Tudo que Carlos Rocha postou
-
Ola pessoal. Estou tendo muitas dificuldades com Upload de Varias imagens. O cadastro é uma beleza. Cadastro tambem no banco, bão de +. Acontece que o site é um site de imobiliaria e corre o risco de o cliente querer trocar(substituir-update) uma das fotos e é ai que minha dificuldade esta. Quando faço o update, a partir do código que criei, o update até feito certo, só que não estou conseguindo dizer o seguinte: Quero alterar apenas a foto 3, ou a 2. Por esse script eu tenho que alterar todas, se não, no caso de alterar apenas, por exemplo, a segunda e a quinta fotos, o script altera a primeira e a segunda. Tem alguma saida pra isso? Segue o meu código: FormInsert.php <b>Envio das fotos</b><br /> <? include("../global/conexao.php"); ?> <? if ($acao=="inserir") { ?> <form action="FormInsert.php?acao=insere" method="post" enctype="multipart/form-data"> <input type="file" name="Fotos[]"><br /> <input type="file" name="Fotos[]"><br /> <input type="file" name="Fotos[]"><br /> <input type="file" name="Fotos[]"><br /> <input type="file" name="Fotos[]"><br /> <input type="submit" value="OK"/> </form> <? } ?> <? if ($acao=="insere") { include ("Multiplos_Uploads.php"); $NomedasFotos = explode(';',$NomeTodasFotos); print $NomedasFotos[1]; $sql_insere= mysql_query("insert into imoveiscadastrovenda (Foto, Foto2, Foto3, Foto4, Foto5) values ('$NomedasFotos[0]','$NomedasFotos[1]','$NomedasFotos[2]','$NomedasFotos[3]', '$NomedasFotos[4]') ") or die ("Merda"); if ($sql_insere) {echo "Bão";} else {echo "Ruim";} } ?> FormUpdate.php <script> function AbreImagemGrande(UrlPagI,NameI,Wi,He,scrolling) { if (!scrolling) { scrolling = 'auto' } PopImagemGrande = window.open(UrlPagI,NameI,'width='+Wi+',height='+He+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no'); } </script> <? include("../global/conexao.php"); ?> <? if ($acao=="listar") { ?> <b>Envio das fotos</b><br /> <form action="FormUpdate.php?acao=alterar" method="post" enctype="multipart/form-data"> <? $sql = "Select Foto, Foto2, Foto3, Foto4, Foto5 from imoveiscadastrovenda where Id=4"; $sql1 = mysql_query($sql) or die ("Select mau feito"); $nome_das_fotos = mysql_fetch_array($sql1); $Foto[1] = $nome_das_fotos['Foto']; $Foto[2] = $nome_das_fotos['Foto2']; $Foto[3] = $nome_das_fotos['Foto3']; $Foto[4] = $nome_das_fotos['Foto4']; $Foto[5] = $nome_das_fotos['Foto5']; $endereco_mini="teste_upload/mini/"; $endereco_normal="teste_upload/normal/"; for ($i=1; $i<6;$i++) { $foto_mini = $endereco_mini.$Foto[$i]; $foto_normal = $endereco_normal.$Foto[$i]; //aqui ele vai ver se existe alguma coisa escrita no campo foto_receita na tabela if($Foto[$i]==""){ $Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto1</strong></font>"; } else { //se existir um valor no campo na tabela ele testa se a foto esxiste 'fisicamente' na pasta if(file_exists($foto_mini)){ if(file_exists($foto_normal)){ //se existir ele monta a exibição da foto e coloca numa variavel $foto2 $Fotografia = "<img src=$foto_mini border=0 height=40>"; list($width, $height) = getimagesize($foto_normal); $Fotografia = "<a href=java script:AbreImagemGrande('ImoveisVenda_Conteudo_Con.php?id=$Id','ImpNot','$width','$height')>$Fotografia</a>"; } else { //se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto $Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto2</strong></font>"; } } else{ //se tiver um valor na tabela, mas a foto não existir na pasta a variavel fica setada como sem foto $Fotografia = "<font color=#DEE9EF size=2 face=verdana,arial, Helvetica, sans-serif><strong>Sem foto3</strong></font>"; } } echo " <input type='file' name='Fotos[]'> $Fotografia<br> "; }//Fimdo for ?> <input type="submit" value="OK"/> </form> <? } ?> <? if ($acao=="alterar") { include ("Multiplos_Uploads.php"); $NomedasFotos = explode(';',$NomeTodasFotos); $sql_insere= mysql_query("update imoveiscadastrovenda set Foto='$NomedasFotos[0]', Foto2='$NomedasFotos[1]', Foto3='$NomedasFotos[2]', Foto4='$NomedasFotos[3]', Foto5='$NomedasFotos[4]' where id=4"); if ($sql_insere) {echo "Bão";} else {echo "Ruim";} } ?> Multiplos_Uploads.php <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['Fotos']; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { ereg ("(.*)\.([^.]+)$", $Nome, $partes); if(($partes[2] != "jpg") and ($partes[2] != "jpeg") and ($partes[2] != "png") and ($partes[2] != "gif")) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { // Pega extensão do arquivo preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $Nome, $ext); // Retira a extensao do nome do arquivo $nome_sem_extensao = $Nome; $nome_sem_extensao = basename ($nome_sem_extensao,".gif"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpeg"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpg"); $nome_sem_extensao = basename ($nome_sem_extensao,".png"); // Retira espaços em branco do nome do arquivo $nome_banco = str_replace(" ","_",$nome_sem_extensao); //Gera um nome único para a imagem //$imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1]; $imagem_nome = md5(uniqid(time())) . "." . $ext[1]; //Diretórios de Gravação das imagens $Caminho = $dir . $imagem_nome; $Caminho_mini = $dir_mini . $imagem_nome; if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA Nesse momento será o $Caminho pois o upload já foi feito e o arquivo temporario apagado //CRIA UMA NOVA IMAGEM if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($Caminho); } else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($Caminho); } else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($Caminho); } else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($Caminho); } //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = imagecreatetruecolor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="gif") { imagegif($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="png") { imagepng($imagem_fin, $Caminho_mini); } $NomesFotos[] = $imagem_nome; //LIBERA A MEMÓRIA imagedestroy($imagem_orig); imagedestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR $NomeTodasFotos = implode(';',$NomesFotos); ?>
-
Mas hein ESerra, Obrigado, deu certo. Mas, aproveitando a boa vontade, to com mais dois problemas nesse codigo que até agora não consegui resolver; Caso possa ajudar: 1) Quando faço o Upload de imagens gif e png, o fundo das miniaturas fica preto e não a cor de fundo da imagem original. Queria arrumar isso. 2) Não estou conseguindo uma funçaopara fazer o upload e gerar a miniatura de figuras .bmp (que funcione).; Caso possa ajuidar agradeço. Um abç e obnrigado pelas inuimeras ajudas que, até aqui, você tem me dado.
-
Puxa, ainda não cosnegui resolver!
-
Mas hein ESerra, Obrigado, deu certo. Mas, aproveitando a boa vontade, to com mais dois problemas nesse codigo que até agora não consegui resolver; Caso possa ajudar: 1) Quando faço o Upload de imagens gif e png, o fundo das miniaturas fica preto e não a cor de fundo da imagem original. Queria arrumar isso. 2) Não estou conseguindo uma funçaopara fazer o upload e gerar a miniatura de figuras .bmp (que funcione).; Caso possa ajuidar agradeço. Um abç e obnrigado pelas inuimeras ajudas que, até aqui, você tem me dado.
-
Como faria isso? Da um exemplo fazendo favor! O que eu quero é o seguinte: O código abaixo de upload de varias imagens (aqui só esta a parte do upload) os demais campos do form tirei. Como são varias imagens, é feito um loop e, a cada volta do for, eu tenho um nome diferente. Dai, quero juntar nome da primeira imagen uploadeada, e a segunda e a "N" em uma variavel FORA do loop sendo que os noimes serão em forma de string separados por ';'; Como faz isso? Segue o código: <b>Envio das fotos</b><br /> <form action="Multiplos_Uploads.php" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { ereg ("(.*)\.([^.]+)$", $Nome, $partes); if(($partes[2] != "jpg") and ($partes[2] != "jpeg") and ($partes[2] != "png") and ($partes[2] != "gif")) //if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { // Pega extensão do arquivo preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $Nome, $ext); // Retira a extensao do nome do arquivo $nome_sem_extensao = $Nome; $nome_sem_extensao = basename ($nome_sem_extensao,".gif"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpeg"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpg"); $nome_sem_extensao = basename ($nome_sem_extensao,".png"); // Retira espaços em branco do nome do arquivo $nome_banco = str_replace(" ","_",$nome_sem_extensao); //Gera um nome único para a imagem $imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1]; //Diretórios de Gravação das imagens $Caminho = $dir . $imagem_nome; $Caminho_mini = $dir_mini . $imagem_nome; if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA Nesse momento será o $Caminho pois o upload já foi feito e o arquivo temporario apagado //CRIA UMA NOVA IMAGEM if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($Caminho); } else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($Caminho); } else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($Caminho); } else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($Caminho); } //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = imagecreatetruecolor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="gif") { imagegif($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="png") { imagepng($imagem_fin, $Caminho_mini); } $NomesFotos = Array(); $NomesFotos= $imagem_nome; //LIBERA A MEMÓRIA imagedestroy($imagem_orig); imagedestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR ?> <?=$NomesFotos[1];?>
-
Ola pessoal. Tenho um loop for e dentro dele uma variavel $NomeFotos que deve, a cada laço do for, pegar o nome da foto da vez que passar pelo for e acresentar um ;(ponto e virgula) a cada foto tipo: $FotoNome == "aa.jpg"; // 1 laço do for $FotoNome == "aa.gif"; // 2 laço do for $FotoNome == "aa.png"; // 3 laço do for Alem disso, eu preçiso pegar o resulktado dessa vartiavel, do lado de fora do loop for para jogar ela num insert do SQL. Tipo assim: $sql = "Insert into fotos values NomeFotos= $NomeFotos"; Sendo que $NomeFotos = "aa.jpg;aa.gif;aa.png"; Como fazer isso? Grato a quem ajudar
-
Não entendi nada. Que função enorme! Tem uma coisa mais simples não?
-
Essa função não existe
-
Resolvi assim: Troquei o if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) Por ereg ("(.*)\.([^.]+)$", $Nome, $partes); if(($partes[2] != "jpg") and ($partes[2] != "jpeg") and ($partes[2] != "png") and ($partes[2] != "gif") and ($partes[2] != "bmp")) E agora esta legal. só que agora surgiu um ouitro problema.; Quando a imagem é bmp, ai, a função imagecreatefromwbmp da erroi; Veja: Warning: imagecreatefromwbmp() [function.imagecreatefromwbmp]: 'teste_upload/normal/cão_latindo.b240000b0b7b271b1a2270ff719bc376.bmp' is not a valid WBMP file in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 73 Warning: imagesx(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 76 Warning: imagesy(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 78 Warning: Division by zero in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 82 Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 85 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 88 Warning: imagewbmp(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 94 Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 99 Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 100 Como resolve isso?
-
Oi Pesoal. Beleza? Da uma luz aqui Seguinte: tenho esse simples script para validar a extensão de imagens if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { ............... Para jpg, gif e bmp vai beleza mas para png não vai. ele exibe a mensagem que o arquivo não é válido conforme o if. Porque será? Onde será que estou errando?
-
Pessoal, ainmda não consegui resolver.; Se alguém puder me ajudar
-
Sabe, olhando com mais atenção descobri que o patch para a fuinçao imagegif estavba trocado. Arrumei e deui certo. Porem, agora estou com um outro problema. É que a função imagegif esta gravando certo a imagem miniatura mas esta gravando com, fundo preto.; Nãoe estou sabebndo contornar esa situação.; Obs.: a fugura grava direito com o desenmho mas no fundo esta vindo preto e não o fundo da imagem original. Detalhe: parece que na criação da miniatura, a parte do frundo da original não esta sendo enviada para a miniatura. com,ko sai disso? segiue código <b>Envio das fotos</b><br /> <form action="Multiplos_Uploads.php" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { // Pega extensão do arquivo preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $Nome, $ext); // Retira a extensao do nome do arquivo $nome_sem_extensao = $Nome; $nome_sem_extensao = basename ($nome_sem_extensao,".gif"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpeg"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpg"); $nome_sem_extensao = basename ($nome_sem_extensao,".bmp"); $nome_sem_extensao = basename ($nome_sem_extensao,".png"); // Retira espaços em branco do nome do arquivo $nome_banco = str_replace(" ","_",$nome_sem_extensao); //Gera um nome único para a imagem $imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1]; //Diretórios de Gravação das imagens $Caminho = $dir . $imagem_nome; $Caminho_mini = $dir_mini . $imagem_nome; if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA $imagem = $Caminho; //Nesse momento, o upload já foi feito e o arquivo temporario apagado //CRIA UMA NOVA IMAGEM if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($imagem); } else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($imagem); } else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($imagem); } else if ($ext[1] =="bmp") { $imagem_orig = imagecreatefromwbmp($imagem); } else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($imagem); } //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = imagecreatetruecolor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="gif") { imagegif($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="bmp") { imagewbmp($imagem_fin, $Caminho_mini ,100); } else if ($ext[1] =="png") { imagepng($imagem_fin, $Caminho_mini ,100); } //LIBERA A MEMÓRIA imagedestroy($imagem_orig); imagedestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR ?>
-
Passei para 777 e continua Unabled to Open
-
Permissão 755 Esta gravando normalmente jpeg. Apenas gif, png não gravam
-
Não, a permissão não é 777. Mas, asa figuras jpg e jpeg vão normal. Inclusive, as imagens em tamanho normal das .gif são uplodeadas normalmente. Apenas s miniaturas não são gravadas por falta de permissão. Dai "penso" que pode não ser problema nas pastas. Mas, e o caso das png que são barradas no ergi?
-
Ola pessoal. Mais uma vez preciso de ajuda. Estou com o códigdo abaixo de Upload com thumbnmail. Esta funcionando porem tem alguns erros que não estou conseguindo tirar e estou a pedir ajuda. São eles: 1) Quando a imagem é jpg ou jpeg, faz o upload e gera o thumbmail (miniatura) certinho. 2) Quando a imagem é gif, faz o upload e não gera o thumbmail (miniatura) e diz que a funçao imagegif não tem permissão de escrita na pasta. Warning: imagegif() [function.imagegif]: Unable to open 'teste_upload/mini/' for writing: Is a directory in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 92 3) Quando a imagem é png, não faz e diz que o arquivo é invalido (mensagem do site, não do php). O arquivo 1 não é um arquivo válido. 4) Quando a imagem é bmp, faz o upload e não gera o thumbmail (miniatura) informando o erro abaixo. Warning: imagecreatefromwbmp() [function.imagecreatefromwbmp]: 'teste_upload/normal/cão_latindo.77579dfd069adcb618aeabbd3735dc48.bmp' is not a valid WBMP file in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 72 Será que não há uma função que cria thumbnail(miniaturas) A partir de qualquer extensão (Jpeg, png, gif)? Tipo, a imagecreatefromjpeg só cria a partir de jpg, a imagecreatefromgif só cria a partir de gif. Existe ua função que cria thumbnail(miniaturas) A partir de qualquer extensão (Jpeg, png, gif)? Eis o código: <b>Envio das fotos</b><br /> <form action="Multiplos_Uploads.php" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { // Pega extensão do arquivo preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $Nome, $ext); // Retira a extensao do nome do arquivo $nome_sem_extensao = $Nome; $nome_sem_extensao = basename ($nome_sem_extensao,".gif"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpeg"); $nome_sem_extensao = basename ($nome_sem_extensao,".jpg"); $nome_sem_extensao = basename ($nome_sem_extensao,".bmp"); $nome_sem_extensao = basename ($nome_sem_extensao,".png"); // Retira espaços em branco do nome do arquivo $nome_banco = str_replace(" ","_",$nome_sem_extensao); //Gera um nome único para a imagem $imagem_nome = $nome_banco . "." . md5(uniqid(time())) . "." . $ext[1]; //Diretórios de Gravação das imagens $Caminho = $dir . $imagem_nome; $Caminho_mini = $dir_mini . $imagem_nome; if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA $imagem = $Caminho; //Nesse momento, o upload já foi feito e o arquivo temporario apagado //CRIA UMA NOVA IMAGEM if ($ext[1] =="jpg") { $imagem_orig = imagecreatefromjpeg($imagem); } else if ($ext[1] =="jpeg") { $imagem_orig = imagecreatefromjpeg($imagem); } else if ($ext[1] =="gif") { $imagem_orig = imagecreatefromgif($imagem); } else if ($ext[1] =="bmp") { $imagem_orig = imagecreatefromwbmp($imagem); } else if ($ext[1] =="png") { $imagem_orig = imagecreatefrompng($imagem); } //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = imagecreatetruecolor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM if ($ext[1] =="jpg") { imagejpeg($imagem_fin, $dir_mini ,100); } else if ($ext[1] =="jpeg") { imagejpeg($imagem_fin, $dir_mini ,100); } else if ($ext[1] =="gif") { imagegif($imagem_fin, $dir_mini ,100); } else if ($ext[1] =="bmp") { imagewbmp($imagem_fin, $dir_mini ,100); } else if ($ext[1] =="png") { imagepng($imagem_fin, $dir_mini ,100); } //LIBERA A MEMÓRIA imagedestroy($imagem_orig); imagedestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR ?> Como posso arrumar isso?
-
To sim. O problema era que estava usando o imaecreatefromjpeg() de dentro de uma condicional if e naquele momente (dentrto do if), o patch que estva procurando da imagem temporaria já havia sido deletado pois o moveupload já havia sido feito. Assim, alterei o patch para o endereço(no servidor) para onde a figura havia sido movida. Ok. Obrigado.
-
Ola pessoal. Estou aqui criando um upload multiplo de imagens mas quiando chego na geraçao de miniaturas esta dando o seguinte erro: Warning: imagecreatefromjpeg(/tmp/phpAsMhcl) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 50 Segue o código. <b>Envio das fotos</b><br /> <form action="Multiplos_Uploads.php" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; $Caminho = $dir . $Nome; $Caminho_mini = $dir_mini . $Nome; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA $imagem = $Tmpname; //NOME DO ARQUIVO DA MINIATURA Igual o nome da original $imagem_gerada = $Nome; //CRIA UMA NOVA IMAGEM $imagem_orig = imagecreatefromjpeg($imagem); //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = imagecreatetruecolor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO imagecopyresampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM imagejpeg($imagem_fin, "$dir_mini/".$imagem_gerada,100); //LIBERA A MEMÓRIA imagedestroy($imagem_orig); imagedestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR ?> alguém pode me dar uma luz? Grato!
-
Bom pesoal. Consegui resolvar parte do problema. Agora, gostaria de pedir voces que ohasse por favor o script abaixo onde, na hora que chega o momento de gera uma miniaturta da imagem enviada por upload, ai dá o seguinte erro : Warning: imagecreatefromjpeg(/tmp/phpfcthJD) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/dinamica/public_html/teste_upload/Multiplos_Uploads.php on line 51 Esis o código <b>Envio das fotos</b><br /> <form action="Multiplos_Uploads.php" method="post" enctype="multipart/form-data"> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="teste_upload/normal/"; $dir_mini="teste_upload/mini/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; $Caminho = $dir . $Nome; $Caminho_mini = $dir_mini . $Nome; if (!$Nome) { echo 'Você não enviou nada na posição' . ($i+1) . '<br/>'; } else { if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Tipo)) { echo 'O arquivo ' . ($i+1) . ' não é um arquivo válido.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else { if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto ' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; ///cria a miniatura e faz io move_uploaded_file //IMAGEM A SER ABERTA $imagem = $Tmpname; //NOME DO ARQUIVO DA MINIATURA Igual o nome da original $imagem_gerada = $Nome; //CRIA UMA NOVA IMAGEM $imagem_orig = ImageCreateFromJPEG($imagem); //LARGURA $pontoX = ImagesX($imagem_orig); //ALTURA $pontoY = ImagesY($imagem_orig); //DEFINE OS PARÂMETROS DA MINIATURA $largura = 150; $altura = ($pontoY * $largura) / $pontoX; //CRIA O THUMBNAIL $imagem_fin = ImageCreateTrueColor($largura, $altura); //COPIA A IMAGEM ORIGINAL PARA DENTRO ImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY); //SALVA A IMAGEM ImageJPEG($imagem_fin, "$dir_mini/".$imagem_gerada,100); //LIBERA A MEMÓRIA ImageDestroy($imagem_orig); ImageDestroy($imagem_fin); } else // Erro no envio { echo 'Não foi possível enviar a foto' . ($i+1) . '<br/>'; } } } } //FIM DO FOR ?>
-
Nova situação agora. Mesmo usando no script abaixo as funções Copy ou move_uploadedfiles, tanto faz, o resultado é o mesmo. Só da certo se eu colocar apenas o nome da imagem. Caso eu coloque o nome do diretório que quero colocar a imagem ai não faz o upload. Segue: <form action="tt.php" method="post" enctype="multipart/form-data"> <b>Envio das fotos</b><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $dir="img/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; ////////////////////////// if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Fotos['type'])) { if(copy($Tmpname, $Nome)) // aqui, se eu colocar a variavel $Caminho o upload não vai. //if(move_uploaded_file($Tmpname, $Nome)) { echo 'Foto #' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else // Erro no envio { echo 'Não foi possível enviar a foto #' . ($i+1) . '<br/>'; } } else { echo "Erro"; } } //FIM DO FOR ?> image/gif img/Fim de Ano (6).gif img/ gif Fim de Ano (6).gif C:\Windows\Temp\phpD12B.tmp
-
Bom, descobri parte do erro. Porem agora preciso usar a função mas o resultado é a criação de um arquivo sem extensão e nem pasta é. O que será que esta errado: <form action="tt.php" method="post" enctype="multipart/form-data"> <b>Envio das fotos</b><br /> <input type="file" name="fotos[]"><br /> <input name="MAX_FILE_SIZE" type="hidden" value="1"> <input type="submit" value="OK"/> </form> <? $dir="img/"; $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++){ $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; /////////////////////// print $Nome."<br>"; print $Tamanho."<br>"; print $Tipo."<br>"; print $Tmpname."<p>"; ////////////////////////// if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $Fotos['type'])) { echo "OPA"."<br>"; echo $Fotos['type'][$i]."<br>"; } else { echo "IIIIIIIIII"."<br>"; echo $Fotos['type'][$i]."<br>"; } ////////////////////////// $Caminho = $dir . $Nome; print $Caminho."<br>"; if(move_uploaded_file($Tmpname, $Caminho)) { echo 'Foto #' . ($i+1) . ' enviada.<br/>'; // Faz contagem de enviada com sucesso $Conta++; } else // Erro no envio { // $i+1 porque $i começa em zero echo 'Não foi possível enviar a foto #' . ($i+1) . '<br/>'; } } //FIM DO FOR ?>
-
Ola pessoal, Estou começando a me preparar para fazer uploads de varias imagens com patch no Banco mas estou me travando na verificação da extensão. O que eu queria era ver se na matriz (array) do campo file que envia "n" fotos ( ou imagens), há extensões validas. Ou seja, Se o aqruivo que enviei tem extensão valida. No (pequeno) script que estou fazendo poara teste, só passa a extensão gif. Png, jpg e jpeg não passam. Será que estou fazendo errado? <form action="tt.php" method="post" enctype="multipart/form-data"> <b>Envio das fotos</b><br /> <input type="file" name="fotos[]"><br /> <input type="submit" value="OK"/> </form> <? $Fotos = $_FILES['fotos']; //$Fotos = isset($_FILES["fotos"]) ? $_FILES["fotos"] : FALSE; for($i = 0; $i < sizeof($Fotos['name']); $i++) { $Nome = $Fotos['name'][$i]; $Tamanho = $Fotos['size'][$i]; $Tipo = $Fotos['type'][$i]; $Tmpname = $Fotos['tmp_name'][$i]; print $Nome."<br>"; print $Tamanho."<br>"; print $Tipo."<br>"; print $Tmpname."<p>"; print preg_match('/^image\/(gif|jpeg|jpg|png)$/', $Tipo)."<br>"; preg_match('/^image\/(gif|jpeg|jpg|png)$/', $Tipo, $Ext)."<br>"; print $Ext[1]."<br>"; if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$",$Ext[1])) { print "Ok"; } else { print "iiiiiii"; } } //FIM DO FOR ?>
-
Puxa, ainda não testei. Mas, será que essa alteração que você fez irá fazer com que após a Redecard vslidar os dados do cartão ele enviar os dados para a pagina de retorno na mesma página em vez de abrir outra pagina ou é apenas ua questão de "Enxugar" o código?
-
Continuo não entendendo! Comente por favor! pelo que entedi, a unica alteraçaõ que você fez foi tirar a declaração das variaveis em $_Get no inciio para import_request_variables('gpc');
-
Não entendi!