Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/05/2009, 04:44
Avatar de AvanzaComunicacion
AvanzaComunicacion
 
Fecha de Ingreso: mayo-2009
Ubicación: Málaga
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sobre archivos .kmz

Yo me he visto en la misma situación que tú, con la necesidad de abrir un archivo KMZ desde Flash, pero no había manera. Estaba probando con diferentes opciones:

Código HTML:
getURL("/archivo-google-earth.kmz");
getURL("javascript:self.location='/archivo-google-earth.kmz';");
getURL("javascript:window.open(/archivo-google-earth.kmz');");
pero ninguna funciona.


Por fin he dado con la solución, y es forzar la descarga mediante PHP.

El script PHP descargar.php sería este:

Código PHP:
<?php
$filename 
$_GET['file'];
if(
ini_get('zlib.output_compression'))  ini_set('zlib.output_compression''Off');
$file_extension strtolower(substr(strrchr($filename,"."),1));

if( 
$filename == "" ) {
  
// error: no se ha especificado el archivo en $file
  
exit;
}
elseif ( ! 
file_exists$filename ) ) {
  
// error: el archivo no existe
  
exit;
};
switch( 
$file_extension ) {
  case 
"kmz"$ctype="application/vnd.google-earth.kmz"; break;
  case 
"kml"$ctype="application/vnd.google-earth.kml+xml"; break;
  default: 
$ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); 
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
?>
y el enlace desde Flash quedaría así:

Código HTML:
getURL("/descargar.php?file=archivo-google-earth.kmz");
Lo he probado en mi proyecto y funciona perfectamente!


Espero que te sea de ayuda!



Avanza Comunicación Málaga