Foros del Web » Programando para Internet » PHP »

funcion Header

Estas en el tema de funcion Header en el foro de PHP en Foros del Web. Hola amigos, Tengo una pagina web, en la cual el usuario tiene la opción de bajar información en un archivo, este ultimo se crea en ...
  #1 (permalink)  
Antiguo 08/04/2002, 17:14
 
Fecha de Ingreso: agosto-2001
Ubicación: Lima
Mensajes: 123
Antigüedad: 16 años, 3 meses
Puntos: 0
funcion Header

Hola amigos,
Tengo una pagina web, en la cual el usuario tiene la opción de bajar información en un archivo, este ultimo se crea en el momento que el usuario hacer click sobre el link indicado. No se por qué en algunas versiones del IE el archivo que se genera(el que se muestra en la ventanita que te pide dónde guardarlo) es el correcto, pero en otras el nombre de archivo es el nombre de la pagina que en ese momento se esta mostrando por ejemplo archivos.php. con lo cual ya no se obtiene lo que se desea sino una simple pagina web.
Quiza haya algo en las cabeceras que generan este archivo que este mal, aqui muestro mi codigo:

@header("Content-Type: text/plain; charset='iso-8859-1' ");
@header("Content-Transfer-Encoding: 8bit");
@header("Content-Disposition: attachment; filename=" . urldecode($file_genera_lib_out));
}

$file_genera_lib_out es la variable que tiene el nombre del archivo que se tiene que generar.

Espero alguien me pueda ayudar. :)
  #2 (permalink)  
Antiguo 08/04/2002, 17:33
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: funcion Header

bueno si lo k kieres es generar un archivo en el cliente puedes usar alguna funcion tipo fopen() o copy() y lo copias del server al cliente, jeje suena mal pero nose, si lo k kieres es k cada cliente tenga un archivo en el server con fopen() te basstara

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #3 (permalink)  
Antiguo 08/04/2002, 17:50
 
Fecha de Ingreso: agosto-2001
Ubicación: Lima
Mensajes: 123
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: funcion Header

Gracias por intentar ayudarme, pero creo que no seria una solución optima, ya que este archivo se tiene que crear en tiempo real. Solo cuando el usuario lo desee, de lo contrario estaria saturando mi servidor con tantos archivos creados.

Help please, por ahi me dicen que es un bug del IE 5.5.
  #4 (permalink)  
Antiguo 08/04/2002, 22:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: funcion Header

Si lo que pretendes es .. generar el fichero &quot;al vuelo&quot; y enviarlo al navegador tipo &quot;descargar fichero&quot; ...

Simplemete tienes que:
1º .. envia las cabeceras correspondientes..
2º .. saca el resultado de las variables que proceses con un simplo echo $variable;

Recuerda .. q $variable tiene que contener todo el contenido del fichero q vas a generar .. si es texto . usa \n como separador de lineas .. si es otro formato (imagenes .. etc .. ) usa sus MIME correspondientes.

Un saludo,
  #5 (permalink)  
Antiguo 08/04/2002, 23:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: funcion Header

Usa esta cabecera para el MIME .. a ver si te da resultado:
Código:
// loic1: 'application/octet-stream' is the registered IANA type but
//        MSIE and Opera seems to prefer 'application/octetstream'
$mime_type = (USR_BROWSER_AGENT == 'IE' || USR_BROWSER_AGENT == 'OPERA')
                   ? 'application/octetstream'
                   : 'application/octet-stream';

$content_disp = (USR_BROWSER_AGENT == 'IE') ? 'inline' : 'attachment';

header('Content-Type: ' . $mime_type);
header('Content-Disposition:  ' . $content_disp . '; filename=&quot;' . $filename . '&quot;');
header('Pragma: no-cache');
header('Expires: 0');

// y aqui .. los generamos el texto o fichero a enviar al navegador ...

echo &quot;contenido del texto del fichero generado&quot;;
donde: $filename es el nombre del fichero a generar.

Hay otro detallito sobre el salto de linea que usa Windows, Mac y otros ..
Windows usa \n .. y Mac \r ..

Un saludo, espero q te alivie los quebraderos de cabeza

pd: funcion extraida de phpmysqladmin :cantar:
  #6 (permalink)  
Antiguo 09/04/2002, 12:02
 
Fecha de Ingreso: agosto-2001
Ubicación: Lima
Mensajes: 123
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: funcion Header

Muchas gracias Cluster!!!
El código que me enviaste me ha servido para que en el caso del Netscape ya no me muestre el resultado; es decir el contenido del archivo que en ese momento se generaba. Exactamente hago como me indicas en tu primera respuesta, el de usar el echo &quot;$contenido_file&quot;, pero como tambien comentaba para el caso del IE todavia en algunas versiones sobre todo en la 5.5.** aun persiste el problema, ese en el que te mustra(en la ventana para grabar) el nombre de la página *.php de ese momento y no el que supuestamente se esta generando al vuelo. Claro! ya se, esto se soluciona haciendo click derecho, pero la mayoria de los usuarios solo hace click izq. sobre el link para descargar algun archivo, no?
En realidad creo que el problema es el IE....sabes algo al respecto??

De todos modos muchisimas gracias :)
  #7 (permalink)  
Antiguo 09/04/2002, 12:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: funcion Header

Ahi ya no llego ... ya sabes q Bill Gates suele hacer &quot;algo especial&quot; con sus navegadores y versiones para que los programadores como tu o como yo tengamos q rompernos los ... buscando las cabeceras HTML apropiadas xDD.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.