He estado trabajando en la habilitación de un botón para descargar archivos xls asociados a opciones en un select múltiple. Con la ayuda de los miembros del foro Paynalton y maycolalvarez conseguí que al seleccionar una o más opciones del select se forzara la descarga y los archivos fuesen servidos con php. Ahora tengo dos problemas para los que necesito ayuda.
1. Para cada archivo asociado a la opción seleccionada se abre la ventana de windows con las opciones de "abrir", "guardar", "cancelar". El problema aquí es que sólo la ventana de descarga para el último archivo servido aparece con el foco en la opción "guardar"; mientras que en las restantes el foco aparece en "cancelar". Cómo podría hacer para que cuando se ha guardado un archivo, la siguiente ventana aparezca con el foco en "guardar"?
2.- El problema mayor es que cuando bajo los archivos usando Firefox, estos están bien, perooo cuando los bajo usando IExplorer me encuentro con que al abrirlos en excel NO TIENEN DATOS!!! Será que alguien me da una pista para saber que ocurre?
A continuación el código que utilizo:
Código Javascript:
Ver original
<script language="JavaScript" type="text/JavaScript"> var archivos=new Array(); var indiceActual=1; var downloader; function DownloadFunction(){ var x =1; var Noptions = document.forms["form1"].selector3.length; // for(i in document.form1.selector3.options){ // Esta línea hacía que en IE no funcionara el resto de la función for (i = 0; i < Noptions; i++) { if(document.form1.selector3.options[i].selected) { archivos[x]=document.form1.selector3.options[i].value; archivos[x]=archivos[x].replace(".htm",".xls"); x++; } } indiceActual=1; downloader=setInterval('descargame();',1000); } function descargame() { if(archivos[indiceActual]) { location.href=".../download.php?archivo="+archivos[indiceActual]; indiceActual++; } else { indiceActual=1; archivos=new Array(); clearInterval(downloader); } } </script>
Y en el archivo "download.php"...
Código PHP:
Ver original
<?php } $root = ".../ExcelFiles/"; $path = $root.$archivo; $type = ''; $type = "application/force-download"; ?>
Gracias por la ayuda que me puedan dar.