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
?>
Pergunta
Carlos Rocha
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.
3) Quando a imagem é png, não faz e diz que o arquivo é invalido (mensagem do site, não do php). 4) Quando a imagem é bmp, faz o upload e não gera o thumbmail (miniatura) informando o erro abaixo. 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:Como posso arrumar isso?
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.