Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Abrir archivo como ?? (https://www.clubdelphi.com/foros/showthread.php?t=34897)

Coco_jac 24-08-2006 20:14:28

Abrir archivo como ??
 
Hola amigos, miren necesito poder abrir un archivo de Excel el cual creo en tiempo de ejecucion y almaceno ahi el producto de una consulta, todo esto lo proceso, en una archivo .php
Lo hacia asi
$archivo="archivo.xls";

y ponia un link para a acceder a el, pero prefiero que se abra en otra ventana independiente y de manera automatica,no atravez de un link.

Tengo otra duda este archivo se crea en la ruta de mis paginas, lo malo que cuando hacen otra consulta estas se agregan a este archivo me gustaria poder borrarlo o sobreescribirlo

D-MO 24-08-2006 21:39:44

Hola de nuevo.

Con este código puedes hacer la llamada a el archivo xls:
Código PHP:

<? 
//header xls
header('Content-Type: application/vnd.ms-excel');
readfile('archivo.xls');
?>

Ahora, si deseas abrir el archivo en una nueva página, puedes usar la función window.open de javascript, aúnque esto lo veo innecesario pues la página se mostrará en blanco y mandará el archivo para la descarga.


Saludos.

dec 24-08-2006 22:28:37

Hola,

Me permito añadir que a las cabeceras HTTP que el compañero Darwin ha indicado podrían añadirse algunas más, como por ejemplo, aquellas que indican un nombre para el archivo, el tamaño de este, etc. Seguramente habrá más cabeceras relacionadas con esto, pero, desde luego, estas están ahí disponibles:

Código PHP:

/* */
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Length: " filesize(nombre-archivo.xls));
header("Content-Disposition: attachment; filename="nombre-archivo.xls");
/* */ 


Coco_jac 24-08-2006 23:19:18

Hola gracias por responder, eh tratado de hacer lo que dicen colocando esto luego de haber realizado todo el proceso, pero me bota estas lieas de error :

Código Delphi [-]
 
Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\stecnicoweb\stweb_exportar.php:6) in c:\apache\htdocs\stecnicoweb\stweb_exportar.php on line 59

QUe es esto??, espero sus comentarios.

D-MO 24-08-2006 23:44:31

El error que te muestra es porque el servidor ya ha enviado texto al navegador, en tu caso, en la línea 59 del fichero stweb_exportar.php

Lo que debes hacer es evitar que se envíen este texto, pero, en caso de que sea necesario el que muestre este texto lo recomendable sería que redireccionaras al navegador a otro fichero php que contenga la carga del .xls, esto lo puedes hacer mediante la función:
Código:

location.href('carga_xls.php');
Saludos.

dec 24-08-2006 23:45:18

Hola,

Es un típico error que se produce cuando se envía (por parte del Script PHP en este caso) al navegador cualquier salida (aunque sea un espacio en blanco) y luego se intentan enviar las cabeceras HTTP. Estas cabaceras se tienen siempre que enviar antes de nada, y es un error frecuente (según parece) enviar algo al navegador y luego enviarle cabeceras HTTP, que ya recibió, cuando se le envio ese "algo", por otro lado.

A veces ocurre porque uno no está tomando el camino más o menos adecuado para llegar a la solución del problema. Pero, a veces ocurre simplemente porque el archivo que contiene el Script PHP contiene un espacio donde no debe: un simple espacio en blanco ocasionará el problema. Así que lo mejor que puedes hacerte es dirigirte a la línea que te indica el mensaje de error e investigar en ellá y los "alrededores" para cerciorarte en definitiva de que no se envía nada al navegador antes de las cabeceras HTTP necesarias.

kayetano 25-08-2006 17:19:24

Hola

Veo que llevas algún tiempo en el foro, se te ha ocurrido buscar el texto "Warning: Cannot add header information" (por ejemplo) con la herramienta de busqueda del foro??
Tambien se puede encontrar información sobre el tema principal simplemente buscando por "abrir archivo" o "enviar archivo".
Por lo general la herramienta de búsqueda soluciona muchos problemas muy rapidamente.


La franja horaria es GMT +2. Ahora son las 05:22:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi