Ver Mensaje Individual
  #12 (permalink)  
Antiguo 13/04/2004, 15:33
jcorba
Invitado
 
Mensajes: n/a
Puntos:
Hola a todos,

He estado mirando en webs que tienen implementados motores de descarga y que el problema en que el navegar se quede bloqueado durante la descarga pueda ser por el tipo de cabeceras que estoy mandando.
He estado mirando el motor de descargas que hay implementado en http://www.desarrolloweb.com/descarg...hp?descarga=87 y resulta que cuando pulsas en el link de descarga la ventana que aparece con los botones abrir/guardar/cancelar no es modal (es decir se puede seguir interactuando con la ventana que produjo el evento) en cambio en mi sitio web esto no sucede.
Lo estoy probando con IE 6.0 SP1... mañana lo pruebo con mozilla/netscape para ver si el efecto es el mismo o difiere.

El codigo que tengo implementado es el siguiente:

$filename=basename($fichero);
$filesize = filesize($fichero);

// 'application/octet-stream' is the registered IANA type but
// MSIE and Opera seems to prefer 'application/octetstream'
$USR_BROWSER_AGENT="";
if (preg_match('@Opera(/| )([0-9].[0-9]{1,2})@', $_SERVER['HTTP_USER_AGENT'])) $USR_BROWSER_AGENT='OPERA';
if (preg_match('@MSIE ([0-9].[0-9]{1,2})@', $_SERVER['HTTP_USER_AGENT'])) $USR_BROWSER_AGENT='IE';
$mime_type = ($USR_BROWSER_AGENT == 'IE' || $USR_BROWSER_AGENT == 'OPERA')
? 'application/octetstream'
: 'application/octet-stream';
header('Content-Type: ' . $mime_type);
// Se informa al navegador del tamaño del fichero y puede mostrar la barra de progreso de descarga
header('Content-Length: ' . filesize($fichero));
header('Content-Transfer-Encoding: binary');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
// IE need specific headers
if ($USR_BROWSER_AGENT == 'IE')
{
//header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}
else
{
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Pragma: no-cache');
}
@readfile ($fichero);

Alguna idea al respecto???