Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dimax

Problema ao salva determinada imagem

Recommended Posts

Então pessoal esto com um probleminha aki neste código, pois quando vou salva imagem de um determinado site não da, aparecer um erro, mas fora alguns site a imagem e salva corretamente.

 

Esse é a imagem que esta dando problema pra salva: http://s.glbimg.com/po/tt/f/original/2013/07/31/battlefield-4-windows-8-xbox-one.jpg

 

Quando vo salva esta imagem aparecer este erro aki:

 

PHP Warning:  imagecreatefromjpeg() [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: gd-jpeg: JPEG library reports unrecoverable error:  in E:\home\site\Web\site\editar.php on line 369
PHP Warning:  imagecreatefromjpeg() [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: '../thumb/battlefield-4-windows-8-xbox-one.jpg' is not a valid JPEG file in E:\home\site\Web\site\editar.php on line 369
PHP Warning:  imagesx(): supplied argument is not a valid Image resource in E:\home\site\Web\site\editar.php on line 247
PHP Warning:  imagesy(): supplied argument is not a valid Image resource in E:\home\site\Web\site\editar.php line 249
PHP Warning:  Division by zero in E:\home\site\Web\site\editar.php on line 251
PHP Warning:  imagecreatetruecolor() [<a href='function.imagecreatetruecolor'>function.imagecreatetruecolor</a>]: Invalid image dimensions in E:\home\site\Web\site\editar.php on line 277
PHP Warning:  imagecopyresampled(): supplied argument is not a valid Image resource in E:\home\site\Web\site\editar.php on line 279

Aki é o código pra salva imagem:

function resize_relative( $image, $new_width, $new_height )
{
$new_width  = ( int ) $new_width;
    $new_height = ( int ) $new_height;
    $old_width  = imagesx( $image );
    $old_height = imagesy( $image );
    $ratio_orig = ( $old_width / $old_height );

    if( $new_width / $new_height > $ratio_orig )
    {
        $dif_w = ( $new_height * $ratio_orig );
        $dif_h = $new_height;
    }
    else
    {
        $dif_w = $new_width;
        $dif_h = ( $new_width / $ratio_orig );
    }
    
    $img = imagecreatetruecolor( $dif_w, $dif_h );
    imagecopyresampled( $img, $image, 0, 0, 0, 0, $dif_w, $dif_h, $old_width, $old_height );
    
    return $img;
}

$url_salva = 'http://s.glbimg.com/po/tt/f/original/2013/07/31/battlefield-4-windows-8-xbox-one.jpg';

$ch = curl_init( $url_salva );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
$image = curl_exec( $ch );
curl_close( $ch );

$dir = '../thumb/';
$filename = $dir . pathinfo( $url_salva, PATHINFO_BASENAME );

$fp  = fopen( $filename, 'w' );
fwrite( $fp, $image );
fclose( $fp );
$new_width  = 170; 
$new_height = 100;

if(pathinfo( $filename, PATHINFO_EXTENSION ) == 'gif'){
$image = resize_relative( imagecreatefromgif( $filename ), $new_width, $new_height );
}elseif(pathinfo( $filename, PATHINFO_EXTENSION ) == 'png'){
$image = resize_relative( imagecreatefrompng( $filename ), $new_width, $new_height );
}else{
$image = resize_relative( imagecreatefromjpeg( $filename ), $new_width, $new_height );
}

$new_dir  = '../thumb/';
$new_name = "thumb_$id_a_editar";
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$thumb_name = "thumb_$id_a_editar.$ext";
$filename = $new_dir . $new_name . '.' . pathinfo( $filename, PATHINFO_EXTENSION );

@imagejpeg( $image, $filename, 100 );

Pessoal espero que vocês possa resolver este problema, mas se a imagem não pode salvar, que gere uma mensagem de erro. Agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai? Qual a sua dúvida? Se você quer que gere um erro, faça uma validação do que retornou no cURL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai? Qual a sua dúvida? Se você quer que gere um erro, faça uma validação do que retornou no cURL.

 

Eserra meu problema e pra salva imagem desse site e de outros, dava ate pra mim criar uma tabele de sites que nao é possível salva imagem, e gera uma mensagem de erro, mas vai ter sites que eu não conheço então vai da o erro, se possível vc poderia criar este para gera uma mesangem de erro. Agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.