Foros del Web » Programando para Internet » PHP »

descarga de archivo ..

Estas en el tema de descarga de archivo .. en el foro de PHP en Foros del Web. me funciona bien localmente .. pero en linea en vez de descargar el archivo xls ... descarga el archivo descarga_silumador.php ... la pagina donde esta ...
  #1 (permalink)  
Antiguo 19/05/2009, 14:16
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta descarga de archivo ..

me funciona bien localmente .. pero en linea en vez de descargar el archivo xls ... descarga el archivo descarga_silumador.php ...



la pagina donde esta el enelace que descarga

Código PHP:
<a href="descarga_silumador.php?idesp=simulador_esp.xls"><img src="../img/descargar.png" border="0"></a>


<
a href="descarga_silumador.php?idcli=simulador_cli.xls"><img src="../img/descargar.png" border="0"></a>

<
a href="descarga_silumador.php?idhot=simulador_hot.xls"><img src="../img/descargar.png" border="0"></a
descarga_silumador.php
Código PHP:
<?php
if($_GET['idesp'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idesp;
    
header ("Content-Disposition: attachment; filename=".$idesp);
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idcli'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idcli;
    
header ("Content-Disposition: attachment; filename=".$idcli);
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idhot'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idhot;
    
header ("Content-Disposition: attachment; filename=".$idhot);
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF
?>

Gracias por la ayuda ---
__________________
"La vida sigue su curso, tú toma parte de ella."
  #2 (permalink)  
Antiguo 19/05/2009, 14:19
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: descarga de archivo ..

Hola Superlinux...

Has probado solo con un if?? O mejor, quitando todos esos if?? Ves que sucede?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 19/05/2009, 14:29
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: descarga de archivo ..

igual ... si quito los if pasa lo mismo ...
__________________
"La vida sigue su curso, tú toma parte de ella."
  #4 (permalink)  
Antiguo 19/05/2009, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descarga de archivo ..

Prueba usar algo así:
Código php:
Ver original
  1. header ("Content-Disposition: attachment; filename=\"$idhot\"");

Saludos.
  #5 (permalink)  
Antiguo 19/05/2009, 14:40
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: descarga de archivo ..

no ... el mismo problemita ..

Código PHP:
<?php
if($_GET['idesp'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idesp;
    
header ("Content-Disposition: attachment; filename=\"$idesp\"");
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idcli'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idcli;
    
header ("Content-Disposition: attachment; filename=\"$idcli\"");
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idhot'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idhot;
    
header ("Content-Disposition: attachment; filename=\"$idhot\"");
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF
?>
__________________
"La vida sigue su curso, tú toma parte de ella."
  #6 (permalink)  
Antiguo 19/05/2009, 14:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descarga de archivo ..

mmm mueve las cabeceras de Content-Disposition despues de Content-Type y prueba.

Saludos.
  #7 (permalink)  
Antiguo 19/05/2009, 15:03
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: descarga de archivo ..

mmmmmm nada de nada ...


Código PHP:
<?php
if($_GET['idesp'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idesp;
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Disposition: attachment; filename=\"$idesp\"");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idcli'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idcli;
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Disposition: attachment; filename=\"$idcli\"");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

if($_GET['idhot'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idhot;
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Disposition: attachment; filename=\"$idhot\"");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF
?>
__________________
"La vida sigue su curso, tú toma parte de ella."
  #8 (permalink)  
Antiguo 19/05/2009, 19:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descarga de archivo ..

Muy raro, ya verificaste que $idesp, o $idcli, o $idhot tengan algún valor?

Saludos.
  #9 (permalink)  
Antiguo 20/05/2009, 18:42
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: descarga de archivo ..

... sip ... claro si todo me funciona super bien de forma local ... pero cuando uso la misma funcion online ... genera el problema ...

__________________
"La vida sigue su curso, tú toma parte de ella."
  #10 (permalink)  
Antiguo 21/05/2009, 01:51
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: descarga de archivo ..

bueno yo para hacer eso con archivos xls utilizo este header:

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=".$nombre_archivo);

Sugerencias:
-antes de descargar cualquier cosa mira haber si existe en esa ruta..
-es mejor cryptar el nombre del archivo cuando lo pasas por la url, y al recogerlo lo vuelves a descryptar..
-verifica tambien que $_GET['variables'] no esten vacias con !empty()

suerte
  #11 (permalink)  
Antiguo 21/05/2009, 08:00
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: descarga de archivo ..

Voy a tomar solo uno como ejemplo:

Código PHP:
<?php
if($_GET['idesp'] == TRUE){
    
$enlace $path."../ventas/simulador/".$idesp;
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Disposition: attachment; filename=\"$idesp\"");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace);
}
//fIN DEL IF

?>
Digo yo, $_GET['idesp'] debe ser el nombre del archivo no?? Estoy en lo correcto?

Sí es así, por qué preguntas que si es igual a TRUE?? Qué pasa si quita esos condicionales por un momento? Hazle un var_dump a $_GET['idesp'] y miras que tiene...

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #12 (permalink)  
Antiguo 11/06/2009, 13:27
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: descarga de archivo ..

nop ... $_GET['idesp'] es el id que me identifica que tipo de archivo es el que tiene que descargar ..

$_GET['idesp'] puede ser 1. xxxx o 2. yyyyy o 3. zzzzz

eso funciona muy bien ...

tambien probe .. dejando solo uno asi

Código PHP:
$enlace $path."../ventas/simulador/".$idesp;
    
header ("Content-Type: application/octet-stream");
    
header ("Content-Disposition: attachment; filename=\"$idesp\"");
    
header ("Content-Length: ".filesize($enlace));
    
readfile($enlace); 
Lo raro es que localmente funciona de maravilla pero online nop

__________________
"La vida sigue su curso, tú toma parte de ella."
  #13 (permalink)  
Antiguo 11/06/2009, 16:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descarga de archivo ..

Muy raro, el problema entonces puede estar en tu servidor Web, y no en PHP, ya que PHP lo que hace con header() es enviar una cabecera al server web que a su vez la envia al cliente, si en local te funciona, y ya probamos todo es cosa de checar tu server web.

Saludos.
  #14 (permalink)  
Antiguo 12/06/2009, 12:29
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
De acuerdo Respuesta: descarga de archivo ..

mmm .. ok revisare ..
__________________
"La vida sigue su curso, tú toma parte de ella."
  #15 (permalink)  
Antiguo 09/07/2009, 09:34
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Respuesta: descarga de archivo ..

... si este es un servidor web externo, seria consultar con lo sde soporte ?? ...
__________________
"La vida sigue su curso, tú toma parte de ella."
  #16 (permalink)  
Antiguo 09/07/2009, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: descarga de archivo ..

Así es, ya que si no tienes tu las herramientas para controlarlo y cambiar la configuración no puedes hacer mucho.
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 21:33.