Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo Dias_131708

Salvar JPG via PHP?!

Recommended Posts

Fala galera,

 

eu tenho um sistema no meu site que gera um JPG dinamico, dessa forma:

 

<img src="<?php echo $helperCapa->getCapaById($_GET['capa'], 0); ?>" alt="Capa" />

 

Como eu poderia fazer pra criar um botão que fizesse o download desse JPG? Pra mim não adianta abrir em outra janela, teria que ser um download mesmo, será que existe alguma forma?

 

 

Abraços,

Léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só uma questão de forçar o download, invés de exibir a imagem na página:

http://www.codigofonte.net/dicas/php/236_forcar-download-

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galera,

 

Acho que fiz certo, só não estou conseguindo agora concatenar o link pro download, vejam como eu fiz:

 

<a href="http://www.meusite.com.br/pags/view/aplicativos/download.php?id="<?php $_GET['capa']?>

Estou fazendo certo, pelo que estou vendo em exemplos de concatenações estaria, porém não está conseguindo recuperar o id.

 

Eu dei um 'echo' nessa variavel $_GET['capa'] e está recebendo o ID certinho, só não estou conseguindo concatenar ela no link. Vi alguns lugares que usam ponto pra concatenar, tipo:

 

<a href="'http://www.meusite.com.br/pags/view/aplicativos/download.php?id=' . <?php $_GET['capa']?>"

Mas não está funcionando também, como devo fazer??

 

Abraços,

Léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou 'mostrar' a variável:

<a href="'http://www.meusite.com.br/pags/view/aplicativos/download.php?id=' . <?php echo $_GET['capa']?>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou 'mostrar' a variável:

<a href="'http://www.meusite.com.br/pags/view/aplicativos/download.php?id=' . <?php echo $_GET['capa']?>"

Fala Henrique,

 

Dessa forma ai não funcionou, mas dessa aqui sim:

 

<a href="'http://www.meusite.com.br/pags/view/aplicativos/download.php?id=<?php echo $_GET['capa']" ?>

A única m***** agora é que acho que estou fazendo o arquivo download.php de forma errada, estou seguindo o exemplo do link que você mandou do forçar download, ai eu tenho que colocar oque nessa parte?

 

[<?php $link = $path_a_tu_doc."/".$id;
header ("Content-Disposition: attachment; filename=".$id."");
header ("Content-Type: application/octet-stream");
header ("Content-Length: ".filesize($link));
readfile($link);?>

Eu tenho que mudar alguma coisa na váriavel $link? Desculpa minha ignorância, sou novo nessa área de PHP.

 

Abraços,

Léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, ainda está errado, faça assim:

<a href="http://www.meusite.com.br/pags/view/aplicativos/download.php?id=<?php echo $_GET['capa']; ?>">Download</a>

 

A variável $link deve conter o endereço DA IMAGEM, não do link para download...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável $link deve conter o endereço DA IMAGEM, não do link para download...

Tem que ficar assim?

 

$link = "http://www.meusite.com.br/pags/view/files/capas/".$id.".jpg";

 

Eu coloquei dessa forma, mas quando clico no link do download lá na página ele faz o download do arquivo download.php

 

Abraços,

Léo

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

#8

não..

 

você deve colocar o endereço físico e não o endereço virtual..

 

se estiver pegando a imagem de outro host, use alguma função de stream como file_get_contents, por exemplo..

 

 

   function download( $path, $fileName = '' ){

       empty( $fileName )? $fileName = basename( $path ):null;

       header("Content-Type: application/force-download");
       header("Content-type: application/octet-stream;");
   	header("Content-Length: " . filesize( $path ) );
   	header("Content-disposition: attachment; filename=" . $fileName );
   	header("Pragma: no-cache");
   	header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
   	header("Expires: 0");
   	readfile( $path );
   	flush();
   }


// (caminho físico) certo:
download( 'c:/www/', 'image.jpg' );


// (caminho virtual) errado:
download( 'http://foo.bar/images/', 'image.jpg' );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na sua página 'download.php' faça assim:

function download( $path, $fileName = '' ){

       empty( $fileName )? $fileName = basename( $path ):null;

       header("Content-Type: application/force-download");
       header("Content-type: application/octet-stream;");
       header("Content-Length: " . filesize( $path ) );
       header("Content-disposition: attachment; filename=" . $fileName );
       header("Pragma: no-cache");
       header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
       header("Expires: 0");
       readfile( $path );
       flush();
   }

$filename = $_GET['id'].'.jpg';
// (caminho físico) certo:
download( '/caminho/para/imagem/', $filename );

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.