Pregunta

Le doy a un usuario un enlace para descargar un archivo csv ... simplemente usando

Click <a href="report.csv">here</a> to download your file.

Este texto y enlace se muestran en una pequeña ventana emergente - altura 100 ancho 400.

Si el usuario hace clic en "guardar" - entonces no hay problema, entonces el archivo se guarda donde sea que elijan

Si aunque eligen "abrir" el archivo csv se muestra en la pequeña ventana emergente. Lo que no es lo que quiero: preferiría Excel para abrir y mostrar el archivo en Excel, o incluso deshabilitar la opción "Abrir". el botón puede ser una posible opción.

¿Alguna idea de cómo puedo lograrlo?

Gracias,

¿Fue útil?

Solución

Supongo que está abriendo ese cuadro emergente usando algunos javascript ... así que le sugiero que no muestre / abra su pequeña "descarga". cuadro emergente y en su lugar mostrar este enlace en una página web. Entonces, cuando alguien hace clic en el enlace, obliga al navegador a descargar el archivo y, si desean abrirlo, pueden obtener una vista que es tan amplia como el tamaño de las ventanas del navegador.

// solo por ejemplo, para forzar la descarga de un archivo zip, envíe los encabezados como

// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

Otros consejos

No tiene poder sobre la configuración de los usuarios, como qué tipo de archivo abre cada aplicación. Tendrían que ir a su configuración y cambiar la asociación de archivos. Sin embargo, tenga en cuenta que no todos tienen Excel instalado, por lo que no es una buena idea obligar al usuario a abrir el archivo csv en esta aplicación en particular.

Tampoco creo que pueda deshabilitar la opción Abrir, esto también está dictado por la configuración del navegador web, ya sea que muestre o no la ventana o que inicie la aplicación asociada directamente, etc ... parece que usted ' no tienes suerte en tu caso particular.

Creo que esto es a nivel del sistema operativo y no se puede cambiar.

Una solución a medias es agregar target = " _blank " a la etiqueta. De esa manera, cuando los usuarios seleccionen la opción 'abrir', al menos el archivo se abrirá en una nueva ventana (pantalla completa o al menos redimensionable).

Aparte de eso, no puede cambiar el comportamiento de la ventana, como dijo ceejayoz.

  • Asegúrese de no hacer ninguna otra salida antes de este punto
  • Cree su cadena csv y guárdela en $ csvString
  • Déle el nombre de archivo apropiado en $ csv_filename
  • Los encabezados deben indicarle al navegador que lo cargue en Excel

    header (" Cache-Control: maxage = 1 ");

    header (" Pragma: public ");

    header (" Content-Type: application / vnd.ms-excel ");

    encabezado (" Caduca: 0 ");

    header (" Cache-Control: must-revalidate, post-check = 0, pre-check = 0 ");

    header (" content-disposition: adjunto; filename = $ csv_filename ");

    echo $ csvString;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top