Aponte uma tag para uma imagem gerada dinamicamente pelo PHP?
-
03-07-2019 - |
Pergunta
É possível redirecionar uma imagem para uma imagem gerada dinamicamente (usando PHP)?
Eu tenho uma imagem criada de forma dinâmica e tem uma extensão ".php" (obviamente) e esse servidor não está sob meu controle. Então, eu quero redirecionar "somename.jpg" (no meu servidor) para "remoteserver / dynamicimage.php" (em algum servidor remoto não está sob meu controle) para que eu possa imediatamente ligá-lo como <img src="somename.jpg"/>
ea imagem gerada dinamicamente é mostrada .
Por favor, deixe-me saber se isso é possível.
Solução
Navegadores segue redirecionamentos para imagens. Criar um arquivo php chamado "somename.jpg" e adicione:
<?php
header('Location: http://www.otherserver.com/image.php');
Use o Apache directiva ForceType em uma .htaccess arquivo para dizer ao servidor para processar o arquivo .jpg como php:
<Files somename.jpg>
ForceType application/x-httpd-php
</Files>
Ou apenas chamar a somename.php arquivo se você realmente não precisa a extensão .jpg.
Você provavelmente poderia fazer isso usando mod_alias bem , embora eu não tentei:
Redirect somename.jpg http://www.otherserver.com/image.php
Este seria ir em um arquivo .htaccess também.
Outras dicas
A função de cabeçalho controla o cabeçalho HTTP, que é o que os usos do navegador para determinar o tipo de arquivo (ou deveria, em qualquer caso.) Ele pode ser usado para dizer ao navegador que o script está gerando um arquivo de imagem para ser baixado , ao invés de saída do script HTML:
header('Content-type: image/jpeg');
header('Content-Disposition: attachment; filename="somename.jpg"');
Tente adicionar algo como isto ao seu arquivo .htaccess
RewriteEngine on
RewriteRule ^(.*)\.jpg$ /scripts/$1.php
É possível, mas resultaria em um redirecionamento HTTP:
RewriteEngine on
RewriteRule ^somename\.jpg$ http://remoteserver/dynamicimage.php [L]
Uma alternativa seria usar um procuração (veja < a href = "http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule" rel = "nofollow noreferrer"> P
bandeira ), para que o servidor solicita o recurso remoto e passa-lo de volta para o cliente.
Outra maneira poderosa muito mais complicado, mas incrível seria escrever algum código manipulador que é ativado para este local, url localização da imagem.
Este iria buscar os dados do url externa e emite os dados com o tipo mime direita.
Um você também escrever algum código para armazenar em cache este baseando dados sobre o que pode ser viável.
Desta forma, você nunca iria dar a localização real da imagem e você pode até mesmo usar algumas credenciais secretas como logindata ou cookies de terceiros que não deve aparecer em seu site.
Tudo isso é muito mais difícil de fazer, então simplesmente configurar um redirecionamento na configuração do apache. Nós fizemos coisas como esta nos casos em que a URL iria vazar informações privadas de outra forma.