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