Jump to content


Photo

Thumbnail De Jpeg


  • Faça o login para participar
6 replies to this topic

#1 Xandão Grunge

Xandão Grunge

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Chavantes

Posted 17/10/2005, 15:18

Olá a todos!

Desenvolvi um sistema de thumbnails que aceita somente arquivos Jpeg, e depois realiza o tratamento. Para grande parte de arquivos Jpeg ele utiliza as funções da biblioteca GD normalzinho.

Mas tem uns arquivos Jpeg que ele não aceita. Será que é por causa desta imagem ser um jpeg mais recente? Tem a ver com o Jpeg progressivo ou Jpeg 2? Vale resaltar que utilizo a biblioteca GD v2.0.28, que é relativamente recente. Segue que acontece com algumas imagens:

Warning: imagecreatefromjpeg(): 'C:\Inetpub\vitturia\www\new\album\t2\7.jpg' is not a valid JPEG file in C:\Inetpub\vitturia\www\new\painel\funcoes_arquivo.php on line 31

Caso deseje, está em anexo deste tópico a imagem que tentei usar no teste que deu este erro.

Desde já agradeço,
Xandão Grunge B)

Attached Files


Edição feita por: Xandão Grunge, 17/10/2005, 15:20.

Xandão Grunge B)

#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 17/10/2005, 17:18

bom, eu li em algum lugar, ha muito tempo atras que as imagens JPEG começam com 0xFFD8 e terminam com 0xFFD9. Porem, alguns programas e cameras digitais insistem em nao colocar esses protocolos do arquivo, aí já viu...

vc pode mudar o chmod da imagem ao subi-la pra 777 e aplicar esse paliativo:

function check_jpeg($f, $fix=false ){
   if ( false !== (@$fd = fopen($f, 'r+b' )) ){
       if ( fread($fd,2)==chr(255).chr(216) ){
           fseek ( $fd, -2, SEEK_END );
           if ( fread($fd,2)==chr(255).chr(217) ){
               fclose($fd);
               return true;
           }else{
               if ( $fix && fwrite($fd,chr(255).chr(217)) ){return true;}
               fclose($fd);
               return false;
           }
       }else{fclose($fd); return false;}
   }else{
       return false;
   }
}

tirei esse exemplo do php.net e tem funcionado
codigo original: http://www.php.net/m...mjpeg.php#35116

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#3 Xandão Grunge

Xandão Grunge

    12 Horas

  • Usuários
  • 158 posts
  • Sexo:Não informado
  • Localidade:Chavantes

Posted 17/10/2005, 19:04

vc pode mudar o chmod da imagem ao subi-la pra 777 e aplicar esse paliativo:

Primeiramente gostaria de agracer Stormbringer. A minha dúvida é, como usar esta função na prática? E funciona em ambiente Windows?

Grato,
Xandão Grunge B)
Xandão Grunge B)

#4 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 18/10/2005, 08:12

windows nao precisa de chmod


pra usar a funçao:

check_jpeg('/path/arquivo.jpg', 1); //como se usa qualquer funçao? funcao(parametros);
a pargunta inicial foi tão interessante ;)

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#5 RainMaker

RainMaker

    Almagus Web Design - O Seu Mundo na Web

  • Usuários
  • 498 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:O de todo administrador de empresas: Fazer o negócio evoluir e se desenvolver.

Posted 23/08/2007, 18:37

Opa, tudo bem?

Então, eu já tive problema com imagens de câmeras digitais também, e continuo tendo.
Com este código creio que resolva.

Mas o teu problema também pode ser o seguinte: alguns códigos comparam se a imagem é jpg ou gif. +- assim:

"if($extensao == "jpg"){
header(JPG bla bla bla"

Porém, se a extensão por .JPG(maiúscula) como algumas máquinas o fazem, não rola.

Se tiver esta comparação tu pode corrigir e aplicar o que o Storm falou junto.

Até mais.
Quer uma boa promoção?
Cadastre seu cliente em nossa hospedagem, ganhe 50% do valor no primeiro mês e a partir daí 10% a 15% do valor mensal!

Para entrar em contato por e-mail - webmaster@almagus.com.br ou www.almagus.com.br ou MP.

#6 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 24/08/2007, 10:12

Você não compara imagens pela extensão, isso é falha de segurança grave ... você faz o upload de um arquivo para o servidor para depois criar o thumb, se o usuário enviar um script php com extensão de imagem, o sistema vai fazer o upload e retornar erro na criação do thumb, mas o arquivo já foi, se for um hacker já era. Aconteceu isso comigo, por isso eu sei mais ou menos como funciona.

Melhor mesmo é verificar pelo mime type.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#7 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 25/08/2007, 17:00

Você não compara imagens pela extensão, isso é falha de segurança grave ... você faz o upload de um arquivo para o servidor para depois criar o thumb, se o usuário enviar um script php com extensão de imagem, o sistema vai fazer o upload e retornar erro na criação do thumb, mas o arquivo já foi, se for um hacker já era. Aconteceu isso comigo, por isso eu sei mais ou menos como funciona.

Melhor mesmo é verificar pelo mime type.


Bom saber...
Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq