nov 04 11

Lo linkeamos con alambre (solucion criolla, pero valida)

Tiempo estimado de lectura: 1,23 minutos

Algunos servicios de hosting gratuitos ponen reestricciones a la hora de linkear archivos o imágenes. Uno de los servicios con el que me tocó trabajar, no permitía que las imágenes y archivos alojados ahí, fueran linkeadas desde otra cuenta de la misma empresa; a raiz de esto, y gracias a las posibilidaddes de PHP, pude sortear esta reestricción.

Los que esten padeciendo una situación similar, quizá les interese esta breve explicación para engañar al servicio haciendole creer que el link es solicitado desde el mismo servicio.

Problema:

Toda referencia de afuera de la cuenta donde tenemos las imagenes y/o archivos es anulada.

Solución:

Crear un archivo dentro de la cuenta que llame a las imágenes o a los archivos y los devuelva en el formato predeterminado.

Manos a la obra

Lógica del razonamiento:

linkeo

Código


<?php

//capturamos la ubicacion de la imágen

$location = $_GET['location'];

//controlamos que la imágen sea local y en una carpeta específica
//(gracias pablius)

$ver1 = strpos($location,"./imagenes/");
$ver2 = strpos($location,"http://");
if ($ver1=== false or $ver2===true)
die;

//especificiamos que la devolucion es un archivo jpg

header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="$location"');

//leemos la imágen de la ubicacion especificada

readfile($location);
}
?>

Este archivo se podria llamar imagen.php y estar en la misma cuenta que la imagen a leer y para llamar esa imagen desde otro host, tendriamos que poner:

<img src="http://hosting-imagen/imagen.php?
location=./ubicacion/imagen.jpg" alt="no se olviden del alt" />

Entonces sólo ejecutamos desde afuera el .php y este se encarga de devolvernos la imágen que le pasemos en el parametro “location”.

El siguiente concepto puede aplicarse como ya vimos para linkear un archivo cualquiera (no sólo imagen) . Sería algo asi:


<?php
$location = $_GET['location'];
header('Location:'. $location);
?>

Si quieren ver como funciona, hagan click derecho en la imágen mas arriba publicada y vean como esta referenciada.

Espero que les sirva, cualquier duda o consulta o sugerencia ya saben que tienen que hacer.

Copame! Digg it Digg it Reddit Del.icio.us

    11 Comentarios

  1. Gabriel


    Una masa!!! un grande!!…mañana lo voy a probar…y te cuento que onda :)

  2. naty


    ay que buena idea….la verdad es que vos sos ya como mi maestro en estas cosas, gracias!!!
    Te mando un beso y espero que andes bien
    Cuando lo pruebe te cuento como me fue!

  3. Gabriel


    Lucaz, ESTUVE…probando y probando, puse el php, tal cual lo decis vos, y hago el link desde mi blog, con el respectivo direccion. pero no la muestra :s

  4. Gabriel


  5. Gabriel


  6. Gabriel


    ja! no muestra el codigo que pego aca!

  7. snarf


    Estos son los posts que me confirman que soy un sabio… sabio porque se que no se nada… no entiendo!!!!!!!!!!!!

  8. Pablius


    Habria que recordar, que para mayor seguridad, hay que poner algo que proteja de que no se suban de directorio y te saquen algo de un dir que no queres. Para lo que se recomienda, poner la dirección base, como un parametro fijo.

  9. Lucas


    Correcto Pablius, eso justo estábamos hablando con Fernando. Gracias por la recomendación.

  10. Asterion


    ehh???
    Todo este lío por AngelFire?

  11. fabbry


    hola, veo que manejas bien el php, y necesitaria saber si me podrias dar una manito con una idea que tengo y se me complico, si es asi, te agradecerias q me envies un mail. Gracias

Deja un Comentario

Tags permitidos:

  • <a href="" title="">
  • <abbr title="">
  • <acronym title="">
  • <blockquote cite="">
  • <code>
  • <em>
  • <strong>