Ir para conteúdo

POWERED BY:

Arquivado

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

Edgard Hufelande

A imagem não retorna. :/

Recommended Posts

               function teste ($file) {
                    if (file_exists($file)){
                        header ("Content-type: image/jpeg");
                        imagepng($file);
                        imagedestroy($file);
                    } else {
                        die("Imagem não encontrada.");
                    }
                }
                
                teste('diretorio/cupom.jpg');
                exit;

 

** Fiz esse script para teste da hospedagem **

 

Bom, o problema é, a função não retorna a imagem. rs

Aliás, retorna como se ela não tivesse sido encontrada, maaaas, pelo file_exists ela é encontrada. rs

Ela apenas não retorna, é como se a imagem tivesse quebrada, tipo assim > teste.png

 

Aguardo respostas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

               function teste ($file) {
                    if (file_exists($file)){
                        header ("Content-type: image/jpeg");
                        imagepng($file);
                        imagedestroy($file);
                    } else {
                        die("Imagem não encontrada.");
                    }
                }
                
                teste('diretorio/cupom.jpg');
                exit;

 

Amigo no caso tem alguns erros no seu código você esta utilizando um header de imagem JPEG e usando uma para exibir imagem PNG e alem dissso tentando abrir uma imagem JPEG com função usada para imagens PNG.

 

da uma olhadinha no manual sobre imagejpeg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podemos fazer isso de uma forma elegante e reutilizável, suportando qualquer tipo de imagem:

 

<?php

class UnknownMimeTypeException extends InvalidArgumentException
{
}

class FileNotFoundException extends InvalidArgumentException
{
}

class ImageFile
{
    private $file;
    private $knownMimeTypes = array(
        'jpg' => 'image/jpeg',
        'jpeg' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
        // Adicione os mime types que desejar aqui, sendo que a chave é
        // a extensão do arquivo e o valor é o respectivo mime-type.
    );

    public function __construct($file)
    {
        if ( ! file_exists($file)) {
            throw new FileNotFoundException(
                sprintf('File not found: "%s"', $file)
            );
        }

        $this->file = $file;
    }

    public function getContents()
    {
        return file_get_contents($this->file);
    }

    public function getExtension()
    {
        return pathinfo($this->file, PATHINFO_EXTENSION);
    }

    public function getMimeType()
    {
        $mimeTypes = $this->knownMimeTypes;
        $extension = $this->getExtension();

        if ( ! isset($mimeTypes[$extension])) {
            throw new UnknownMimeTypeException(
                sprintf('Unknown mime type for ".%s"', $extension)
            );
        }

        return $mimeTypes[$extension];
    }
}

class ImageOutput
{
    private $imageFile;

    public function __construct(ImageFile $imageFile)
    {
        $this->imageFile = $imageFile;
    }

    public function show()
    {
        $mimeType = $this->imageFile->getMimeType();
        $content = $this->imageFile->getContents();

        header('Content-Type: ' . $mimeType);

        echo $content;
    }
}

 

E para usar:

 

<?php

try {
    $image = new ImageOutput(new ImageFile('filename.jpg'));
    $image->show();
} catch (Exception $e) {
    echo sprintf('[%s] %s', get_class($e), $e->getMessage());
}

 

Espero ter ajudado :).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irei testar seu script, mas aquele de cima fiz apenas para teste. rs
Tenho uma classe Pic que também não retorna a imagem. ^^

 

 

Seu script também não funcionou Enrico Pereira. rs

Mesmo assim valeu a tentativa. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, tente testar localmente, pode ser (e provavelmente é) um problema de servidor, pois eu não tive nenhum problema ao usar.

 

Segundo ponto: você alterou o caminho da imagem, certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei sim, mas de acordo com seu script, se não encontrasse a imagem ele iria informar o erro, não? rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, seria algo como:

 

[FileNotFoundException] File not found: "nomedoarquivo.jpg"

 

Logo, só consigo pensar em duas hipóteses:

 

- Problema no host

- Imagem tem problemas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, seria algo como:

 

[FileNotFoundException] File not found: "nomedoarquivo.jpg"

 

Logo, só consigo pensar em duas hipóteses:

 

- Problema no host

- Imagem tem problemas

 

Tirei testar localmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

localmente não funcionou também. rs

 

Pior que fiz um

 

if(file_exists('public/images/promocoes/cupom.jpg')){
   echo "O arquivo existe!";				
} else {
   echo "Não existe";
}

 

Só para testar e falou que existe. :\


Deixei a mesma url na sua classe e retorna a imagem quebrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, ta aqui o código que você quer, se é que eu tenha percebido o que você queria!

 

<?php

$img = 'img/logo.png';

if(file_exists($img)){
   echo "O arquivo existe! Aguarde 2 segundos...";
   echo "<meta http-equiv='refresh' content='2; url=" . $img . "'>";			
} else {
   echo "Não existe";
}

?>

Primeiramente ele vai ver se o arquivo informado a cima existe, depois da confirmação, caso ele exista, irá aparecer a mensagem: "O Arquivo existe! Aguarde 2 segundos..." e irá redirecionar para essa mesma imagem!

Eu acho que foi isso q pediu, mas se o q pediu foi para aparecer a imagem no mesmo local ou div numa parte da pagina , isso ja requer javascript! Eu não sou muito bom nessa área!

 

Demo: http://www.radiobaladaalternativa.com.br/testes/imgexiste.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso não Bruno Pereira_175171, ai irá aparecer a url da imagem... Não iria servir para mim.

Preciso que o php gere a imagem e fique a url atual. rs

 

tipo
gerar/cupom/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ai ja requer Javascript....

Também dava com php, mas iria dar muito trabalho, eu irei procurar um código q irei tentar fazer, um para você e dps mais logo posto aqui! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edgard, tenta com outra imagem, pode ser as permissões da imagem também, ou até mesmo um bug da versão do PHP ou do navegador.

 

Resumindo:

- Tente outra imagem

- Veja a permissão da imagem

- Tente usar outro navegador

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.