1 - coloque a imagem fora do diretório que é servido pelo apache.
2 - crie um script que faz o controle de acesso
3 - se o usuário estiver autorizado, então devemos ler a imagem e mandar direto pro usuário, para isso podemos usar o método fpassthru() que já vai jogando a imagem direto pro buffer de saída, gerando um ganho de performance.
4 - depois disso é só fazer uma referência para aquele script, algo como < src="'mostraImagem.php?id="444'">
simples né? olhaí um exemplo de como fazer isso:
$targetPath = $caminhoDaMinhaImagem . '.jpg'; // presumindo que tem esta extensão, é claro.
$fp = fopen($targetPath, 'rb'); // abre para ler um binário
header("Content-Type: image/jpg"); // manda um header dizendo que é um jpg
header("Content-Length: " . filesize($targetPath)); // da a dica do tamanho da img pro browser
fpassthru($fp); // manda
// se você tiver dentro de algum framework, você tem que dar um jeito de não mandar mais nada, um método "bruto", mas prático, é simplesmente die();
Dê uma olhada melhor na documentação dessa função, la tem alguns exemplos muito úteis:
http://php.net/manual/en/function.fpassthru.php
Nenhum comentário:
Postar um comentário