Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/12/2005, 11:41
Shockly
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 18 años, 7 meses
Puntos: 0
Hola,

Tal vez si a este sistema: http://shockly.com/demo_downloads/ le implementas tu validación para descarga, te resuelva el asunto.

Un saludo.


El 'index.php':
Código PHP:
<?php
/*
        03/12/2005
*/
//------------------------------------------------------------------------------------------
//  Definiciones

    
error_reportingE_ALL ^ (E_NOTICE E_WARNING) );

//------------------------------------------------------------------------------------------
//  main

    
echo"<html>\n\r";
    echo
"<head>\n\r";
    echo
"    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n\r";
    echo
"<style type=\"text/css\"><!--\n\r";
    echo
".small { font: 11px verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif; }\n\r";
    echo
"--></style>\n\r";
    echo
"    <title>demo</title>\n\r";
    echo
"    <!-- no cache headers -->\n\r";
    echo
"    <meta http-equiv=\"Pragma\" content=\"no-cache\">\n\r";
    echo
"    <meta http-equiv=\"no-cache\">\n\r";
    echo
"    <meta http-equiv=\"Cache-Control\" content=\"no-cache\">\n\r";
    echo
"    <meta http-equiv=\"Expires\" content=\"0\">\n\r";
    echo
"    <!-- end no cache headers -->\n\r";
    echo
"    <meta http-equiv=\"MSThemeCompatible\" content=\"Yes\">\n\r";
    echo
"    <link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"> \n\r";
    echo
"</head>\n\r";
    echo
"<BODY bgcolor=\"#D5D5D5\" text=\"#000000\" id=\"all\" leftmargin=\"10\" topmargin=\"10\" marginwidth=\"10\" marginheight=\"10\" link=\"#000020\" vlink=\"#000020\" alink=\"#000020\">\n\r";
    echo
"<P><H1><CENTER>demo</CENTER></H1></P>\n\r";
    echo
"<BR>\n\r";
    echo
"<LI class=\"small\"><a href=\"../\">Volver</a></LI>\n\r";
    echo
"<HR>\n\r";
    echo
"<PRE>\n\r";

    echo
"  <IMG SRC=\"mp3.gif\" ALT=\"[TXT]\"> <A HREF=\"download.php?f=01\">Mike Curb Congregation - Burning Bridges.mp3</A>                 2.5 Mb       (02:43)\n";
    echo
"  <IMG SRC=\"zip.gif\" ALT=\"[TXT]\"> <A HREF=\"download.php?f=02\">sources_demo_downloads.zip</A>                                   2.3 Kb\n";

    echo
"</PRE><HR>\n\r";
    echo( 
"<center><small>" );
    echo 
'o0o<br>';
    echo( 
"</small></center>" );
    echo( 
"</BODY>" );
    echo( 
"</html>" );

//------------------------------------------------------------------------------------------
//  end
?>
El 'download.php':
Código PHP:
<?php
/*
        03/12/2005
*/
//------------------------------------------------------------------------------------------
//  Definiciones

    
error_reportingE_ALL ^ (E_NOTICE E_WARNING) );

//------------------------------------------------------------------------------------------
//  main

    
$filename_real  "";
    
$filename_en_disco "";
    if( isset(
$_GET['f']) ) {
        
$source_file $_GET['f'];
        if( 
$source_file != '' ) {
            switch ( 
$source_file ) {
                case 
1:
                    
$filename_real          "Mike Curb Congregation - Burning Bridges.mp3";
                    
$filename_en_disco     "123456789_abcdefghijklmnopqrstuvwxyz";
                    break;
                case 
2:
                    
$filename_real          "sources_demo_downloads.zip";
                    
$filename_en_disco     "xxx456xxx_abcdefghijklmnopqrstuvwxyz";
                    break;
                default:
                    break;
            }
        }
    }

    
//  -----------------------------------------------------
    //  Insertar aquí la validación del usuario para descarga
            
            
$is_valid_user true;
    
//  -----------------------------------------------------

    
if( $filename_real != "" AND $filename_en_disco != "" ) {
        if( !
file_exists($filename_en_disco) ) {
            
$filename_en_disco "";
        }
    }    
    
    if( 
$is_valid_user && $filename_real != "" && $filename_en_disco != "" ) {

        
$filetime filectime($filename_en_disco);
        
$filesize filesize($filename_en_disco);
        
$fp fopen$filename_en_disco"rb" );
        
$filedata fread($fp$filesize);
        
fclose($fp);
        
        
header("Cache-control: max-age=31536000");
        
header("Expires: " gmdate("D, d M Y H:i:s",time()+31536000) . " GMT");
        
header("Last-Modified: " gmdate("D, d M Y H:i:s",$filetime) . " GMT");
        
header("Content-disposition: attachment; filename=\"$filename_real\"\n\n");
        
header("Content-Length: $filesize");
        
$extension=strtolower(substr(strrchr($filename_real,"."),1));
    
        if (
$extension=='gif') {
          
header('Content-type: image/gif');
        } elseif (
$extension=='jpg' or $extension=='jpeg') {
          
header('Content-type: image/jpeg');
        } elseif (
$extension=='png') {
          
header('Content-type: image/png');
        } elseif (
$extension=='pdf') {
          
header('Content-type: application/pdf');
        } elseif (
$extension=='mp3') {
          
header('Content-type: audio/mpeg');
        } else {
          
header('Content-type: unknown/unknown');
        }
        echo 
$filedata;
    }
    else {
        ;
    }

//------------------------------------------------------------------------------------------
//  end
?>