website stats » Ocultar el link de descarga de un archivo | Solo Código |

Ocultar el link de descarga de un archivo

Escrito por J.F. el Miércoles, 18 de Julio del 2007 a las 12:51

El siguiente script realizado con PHP permite ocultar los links de descarga de nuestros archivos. De esa manera por ejemplo, podremos conseguir que para realizar una descarga nuestra unicamente pueda realizarse desde nuestro sitio, y así nadie vaya publicando por foros/blogs el link de nuestra descarga. No es conveniente como norma general ocultar los links de descarga de todos nuestros archivos, pero quizás si sea necesario en algún caso puntual. El script no sé de dónde lo saqué, lo tengo como muchos otros almacenados en carpetas con otros muchos archivos, por lo que lo publicaré tal y como está permitiéndome una simple traducción de los comentarios que hace al autor:

PHP:
  1. <?
  2. /*
  3. Copyright (c) 1999 Marcel Lemmen
  4.        E-mail: lemmen@support.nl
  5.        All  rights  reserved.
  6. */
  7.  
  8. $files=array( 'track01.mp3', 'escreen.exe');
  9. $filenames=array( 'Thank ABBA for the music.mp3', 'Escreen.exe');
  10. $additional_info=array( 'Various artists - Thanx ABBA for the music : 4978602 by
  11. tes', 'Shareware program to make a screenshot: 529920 bytes');
  12. $url= "/home/lemmen/public_html/data/";
  13. /* Cuando los archivos esten alojados en otro servidor, use toda
  14.    la dirección (http://www.server.com/dir/) en lugar de of /home/lemmen... */
  15.        
  16. $referer=ereg_replace( "\?.", "",$HTTP_REFERER);
  17. $thisfile= "http://$HTTP_HOST$PHP_SELF";
  18.        
  19. if ($referer!=$thisfile){
  20.         echo "<center><big>Homepage: <a href=\"http://home.support.nl/~lemmen\">
  21. http://home.support.nl/~lemmen</big><br><hr><br><br></center>";
  22.         for ($i=0;$i<count($files);$i++)
  23.         echo  "<P><A HREF=\"$PHP_SELF?$i\">",$filenames[$i], "</A> $additional_i
  24. nfo[$i]\n";
  25. }
  26. else {
  27.         $i=$QUERY_STRING;
  28.         $total=$url . $files[$i];
  29.         Header ( "Content-Type: application/octet-stream");
  30.         Header ( "Content-Length: ".filesize($total));
  31.         Header( "Content-Disposition: attachment; filename=$filenames[$i]");
  32.         readfile($total);
  33. }
  34. ?>

Categoria: PHP

2 Comentarios

Entradas relacionadas


Comentario de Nico

Realizado el Lunes, 19 de Mayo del 2008 a las 18:30

hola, lei todo pero no se como utilizarlo, me vendria de gran ayuda que den un poco mas de explicacion.

Comentario de Dark Neo

Realizado el Lunes, 20 de Octubre del 2008 a las 16:57

Hola, esta muy bueno el codigo, buscando en internet lo vi, yo aconsejaria poner nombres que no tengan espacios para el array filenames ya que en firefox solo lo descarga con el nombre truncado hasta el primer espacio, una nota para los que no sepan lo que hace la linea 9
$filenames=array( ‘Thank ABBA for the music.mp3′, ‘Escreen.exe’);

Le da un nombre al archivo que se va a descargar, en este caso el nombre track01.mp3 pasa a ser Thank ABBA for the music.mp3, no lo he provado en otros navegadores solo en firefox3 y ie6, no se si en ie7 funcione o no.

Mi consejo es poner algo como Tnak+ABBA+for+the+music.mp3 (por ejemplo) o juntarlo con guines, bueno es una sugerencia, saludos.

Escribir un comentario

Puedes usar las siguientes etiquetas HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Solo Código

Solo Código es una colección de códigos de todo tipo que pueden resultar útiles para el diseño de páginas web. Está enfocado tanto para aquellos que son expertos, como para aquellos principiantes que quieren encontrar recursos útiles, o no saben implementar determinadas funciones en sus webs. No olvides que Solo Código es un blog de Informática Práctica, donde tenemos otras secciones interesantes como:
| Tutoriales | Trucos | Software | Links | Buscar |