Foros del Web » Programando para Internet » PHP »

Problema al descargar archivos con script php

Estas en el tema de Problema al descargar archivos con script php en el foro de PHP en Foros del Web. Hola a todos! Pues bien, tengo el siguiente còdigo para descargar archivos: Código PHP: <?php $f  =  $_GET [ "f" ]; $carpeta = $_GET [ ...
  #1 (permalink)  
Antiguo 14/08/2007, 11:54
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Problema al descargar archivos con script php

Hola a todos!

Pues bien, tengo el siguiente còdigo para descargar archivos:
Código PHP:
<?php
$f 
$_GET["f"];
$carpeta=$_GET["carpeta"];
$path_a_tu_doc "http://www.mediaresearch.com.mx";

$enlace $path_a_tu_doc."/".$carpeta."/".$f;
//echo $enlace;

header ("Content-Disposition: attachment; filename=".$f."\n\n");
header ("Content-Type: application/octet-stream");
//header("Content-type: application/vnd.ms-word");
$fp=fopen($enlace"r"); 
fpassthru($fp);
?>
Me descarga efectivamente losl archivos dicho pero presenta una serie de errores:
1. descargan demasiado ràpido, archivos de 10 mb, no se demora ni dos segundos...
2. Cuando los voy a abrir, me dice que el archivo està dañado...

Que podrìa ser??, tendrà algo que ver que el archivo se suba con campos en blanco entre palabras??. Es decir cuando suben el archivo, no se le quitan los campos en blanco que pueda tener...

Saludos y gracias de antemano!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 14/08/2007, 12:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

Eso que se descargan demasiado rapido puede ser que no puede leero correctamente y el problema que veo es que estas usando fopen para leer un URL, en varios servidores esta desactivado esto asi que te recomiendo mejor usar el path completo a la imagen (path local)

Saludos.
  #3 (permalink)  
Antiguo 14/08/2007, 12:35
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Problema al descargar archivos con script php

Hola GatorV!!!

Mira esta es la ruta que aparece:
/home/httpd/vhosts/mediaresearch.com.mx/httpdocs/Radio

Osea que debo poner asì??:
Código PHP:
$fp=fopen("/home/httpd/vhosts/mediaresearch.com.mx/httpdocs/Radio""r"); 
Tendrà de pronto algo que ver "r"?? Eso se configura en el php.ini?

Gracias de antemano!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 14/08/2007, 12:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

Asi es, necesitas usar la ruta completa, y el parametro de R es para lectura (reading) asi que asi esta bien.

Saludos.
  #5 (permalink)  
Antiguo 14/08/2007, 12:43
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Problema al descargar archivos con script php

Una cosa mas..., pero esa ruta, creo yo que le hace falta algo..., no debe tener un prefijo, como una ip o lago asì??, o tù que dices? servirà asì tal y còmo està?? a mi se me hace que no...

Gracias
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 14/08/2007, 13:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

A que te refieres con la IP?

Como te comente en el primer mensaje tienes que darle la ruta local al archivo, en Unix las rutas locales son asi:
Código:
/var/usr/etc.file
En windows:
Código:
C:\tmp\archivo.txt
Si quieres ponerle la ip es porque seria un share de windows en cuyo caso debe de ser:
Código:
\\IP\path\al\archivo\file.txt
En Linux si va a ser asi primero tienes que montarlo en el filesystem local en una carpeta para accesar.

Saludos.
  #7 (permalink)  
Antiguo 14/08/2007, 13:16
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: Problema al descargar archivos con script php

Hola...

Hice algo pero nada..., cambié el còdigo y nada

Código PHP:
<?php
$f
=$_GET["f"];
$carpeta=$_GET["carpeta"];

$enlace=$carpeta."/".$f;

header("Content-Disposition: attachment; filename=".$f);
header("Content-Type: application/octet-stream");

$fp=fopen($enlace,"r"); 
fpassthru($fp);
?>
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 14/08/2007, 14:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

Deberias de hacerlo asi:
Código PHP:
<?php
$f
=$_GET["f"];
$carpeta=$_GET["carpeta"];

$enlace=$carpeta."/".$f;

if( !
file_exists$enlace ) ) {
      echo 
'$enlace no es un archivo o no existe: ' $enlace;
      exit();
}

header("Content-Disposition: attachment; filename=".$f);
header("Content-Type: application/octet-stream");

$fp=fopen($enlace,"r"); 
fpassthru($fp);
?>
  #9 (permalink)  
Antiguo 14/08/2007, 14:54
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Re: Problema al descargar archivos con script php

Ouuu ya veo, modificarè como me dices y te comento vale?

Una pregunta mas..., el php.ini no tendrà nada que ver por ahì con eso? o el descargar un archivo es independiente de la configuraciòn?

Es que còmo posteè ayer, necesito subir y descargar archivos muy grandes, 70mb, 80mb, no sè si ese simple còdigo que hago me permita realizalo...

Saludos y gracias!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 14/08/2007, 15:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

Igual el set_time_limit es lo que te limita, si el codigo se ejecuta por un tiempo mas grande que el permitido la conexion se corta y quedarias con un archivo truncado.

Saludos.
  #11 (permalink)  
Antiguo 14/08/2007, 15:44
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Problema al descargar archivos con script php

Cita:
Iniciado por GatorV Ver Mensaje
Igual el set_time_limit es lo que te limita, si el codigo se ejecuta por un tiempo mas grande que el permitido la conexion se corta y quedarias con un archivo truncado.
Hablas de max_execution_time?, lo tengo en 600...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #12 (permalink)  
Antiguo 14/08/2007, 15:47
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta Re: Problema al descargar archivos con script php

El còdigo que me diste....

Tampoco sirve GatorV siempre entra a !if_file...
Ya no sè que mas hacer, y lo peor es que en la empresa me tienen azotado....
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #13 (permalink)  
Antiguo 14/08/2007, 15:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

Si siempre entra al if es porque le estas pasando la ruta incorrecta al archivo.

Saludos.
  #14 (permalink)  
Antiguo 14/08/2007, 15:56
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Problema al descargar archivos con script php

Cita:
Iniciado por Carxl Ver Mensaje
Hablas de max_execution_time?, lo tengo en 600...
Què dices de eso?no tendrà nada que ver?
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #15 (permalink)  
Antiguo 14/08/2007, 16:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

El max_execution_time lo que hace es que si despues de por decir de 10 segundos de estar ejecutandose si no ha enviado toda la informacion (dices que son archivos de hasta 70 MB) el script se para y la descarga tmb se para, asi que antes de empezar a enviar la informacion de tu archivo es recomendable que uses:
Código PHP:
set_time_limit(0); 
Saludos.
  #16 (permalink)  
Antiguo 15/08/2007, 10:29
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación Re: Problema al descargar archivos con script php

Hola de nuevo...

Me surgiò una duda al ver que no puedo hacer nada desde programaciòn..

De alguna manera serà posible que el servidor o algo no me permita descargar archivos???? Algo que me impida llevar a acabo con èxito el proceso?

Saludos...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #17 (permalink)  
Antiguo 15/08/2007, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema al descargar archivos con script php

El tiempo de ejecucion de tu script es lo que puede hacer que no puedas bajar con exito un archivo, asi como contenido que se pueda imprimir antes de el contenido real del archivo, puede corromper la estructura del archivo.

Saludos.
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 08:18.