Foros del Web » Programando para Internet » PHP »

Descarga con PHP me trae un archivo casi vacío

Estas en el tema de Descarga con PHP me trae un archivo casi vacío en el foro de PHP en Foros del Web. Buenas, estoy tratando de aprender PHP y me ha surgido una duda. Ando con la función PHP que permite descargar archivos, que es la siguiente: ...
  #1 (permalink)  
Antiguo 04/09/2011, 05:43
 
Fecha de Ingreso: septiembre-2011
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Descarga con PHP me trae un archivo casi vacío

Buenas,
estoy tratando de aprender PHP y me ha surgido una duda.
Ando con la función PHP que permite descargar archivos, que es la siguiente:
Código PHP:
<?php
    $f 
$_GET["f"];
    
header("Content-type: application/octet-stream");
    
header("Content-Disposition: attachment; filename=\"$f\"\n");
    
$fp=fopen("$f""r");
    
fpassthru($fp);
?>
Lo que me sucede es que al crear un enlace del tipo http://www.misitioweb.com/descargar.php?f=otraweb.com/archivo.pdf me aparece la ventana de descarga, pero una vez le doy a guardar, me guarda un archivo que se encuentra practicamente vacío, ya que pesa 'x'KB.
Me gustaría saber donde esta el error, ya que lo que yo busco es que me descargue el archivo 100% completo.
Saludos y gracias de antemano :)
  #2 (permalink)  
Antiguo 04/09/2011, 08:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Descarga con PHP me trae un archivo casi vacío

proba con esto:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $file_name=$_REQUEST['file_name'];  //ARCHIVO A DESCARGAR
  4.  
  5. $file_download_name = $_REQUEST['file_download_name'];   //NUEVO NOMBRE DEL ARCHIVO
  6. $file_type = "xlsx";  //EXTENSION DEL ARCHIVO
  7. if($fh = fopen($file_name, "r")){
  8.  
  9.     $file_content = fread($fh, filesize($file_name));
  10.    
  11.     header("Pragma: public");
  12.     header("Expires: 0");
  13.     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  14.    
  15.     header("content-Type: application/force-download");
  16.     //header("content-Type: application/octet-stream");
  17.     header("Content-type: application/". $file_type. "");
  18.    
  19.     header("Content-disposition:  attachment; filename=". $file_download_name);
  20.     header("content-Transfer-Encoding: binary");
  21.    
  22.     echo $file_content;
  23.    
  24.     fclose($fh);
  25. } else {
  26.     echo "error...";
  27. }
  28. ?>
  #3 (permalink)  
Antiguo 04/09/2011, 13:22
 
Fecha de Ingreso: septiembre-2011
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Descarga con PHP me trae un archivo casi vacío

Cita:
Iniciado por Patriarka Ver Mensaje
proba con esto:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $file_name=$_REQUEST['file_name'];  //ARCHIVO A DESCARGAR
  4.  
  5. $file_download_name = $_REQUEST['file_download_name'];   //NUEVO NOMBRE DEL ARCHIVO
  6. $file_type = "xlsx";  //EXTENSION DEL ARCHIVO
  7. if($fh = fopen($file_name, "r")){
  8.  
  9.     $file_content = fread($fh, filesize($file_name));
  10.    
  11.     header("Pragma: public");
  12.     header("Expires: 0");
  13.     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  14.    
  15.     header("content-Type: application/force-download");
  16.     //header("content-Type: application/octet-stream");
  17.     header("Content-type: application/". $file_type. "");
  18.    
  19.     header("Content-disposition:  attachment; filename=". $file_download_name);
  20.     header("content-Transfer-Encoding: binary");
  21.    
  22.     echo $file_content;
  23.    
  24.     fclose($fh);
  25. } else {
  26.     echo "error...";
  27. }
  28. ?>
Hola Patriarka,

primero de todo darte las gracias por tu atención y ayuda.
Lo acabo de probar, pero me salta un error que al parecer reside en la línea 7:
Código:
Warning: fopen() [function.fopen]: Filename cannot be empty in /x/x/x/x/descargar.php on line 7
Espero que me puedas ayudar, ya que no entiendo porque surge.
Gracias de antemano y, un saludo! ;)
  #4 (permalink)  
Antiguo 04/09/2011, 13:29
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Descarga con PHP me trae un archivo casi vacío

Prueba con un ejemplo que está en el manual oficial:
http://php.net/readfile
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 04/09/2011, 14:55
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Descarga con PHP me trae un archivo casi vacío

alepuz: adaptalo a tu sistema
  #6 (permalink)  
Antiguo 04/09/2011, 15:25
 
Fecha de Ingreso: septiembre-2011
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Descarga con PHP me trae un archivo casi vacío

Cita:
Iniciado por Patriarka Ver Mensaje
alepuz: adaptalo a tu sistema
El problema es que mis conocimientos son tan básicos, que no me permiten, como tu dices, que lo adapte a mi sistema. Es por eso que recurrí al foro, para que alguno me ayude.
  #7 (permalink)  
Antiguo 04/09/2011, 16:11
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Descarga con PHP me trae un archivo casi vacío

Entonces empieza por ahí: aprendiendo lo que se requiere para hacer lo que necesitas.
Cita:
Es por eso que recurrí al foro, para que alguno me ayude.
Exacto, en el foro estamos para ayudar, no para hacer códigos a la medida. Pon algo de tu parte y lee sobre PHP...
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #8 (permalink)  
Antiguo 05/09/2011, 06:58
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Descarga con PHP me trae un archivo casi vacío

te quedaria algo asi:
pero como dice sourcegeek, yo te entiendo pero vos tambien pone tu parte
Código PHP:
Ver original
  1. <?php
  2.      $f = $_GET["f"];
  3.     $file_name= $f ;  //ARCHIVO A DESCARGAR
  4.      
  5.     $file_download_name =  $f ;   //NUEVO NOMBRE DEL ARCHIVO
  6.     $file_type = "pdf";  //EXTENSION DEL ARCHIVO
  7.     if($fh = fopen($file_name, "r")){
  8.      
  9.         $file_content = fread($fh, filesize($file_name));
  10.        
  11.         header("Pragma: public");
  12.         header("Expires: 0");
  13.         header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  14.        
  15.         header("content-Type: application/force-download");
  16.         //header("content-Type: application/octet-stream");
  17.         header("Content-type: application/". $file_type. "");
  18.        
  19.         header("Content-disposition:  attachment; filename=". $file_download_name);
  20.         header("content-Transfer-Encoding: binary");
  21.        
  22.         echo $file_content;
  23.        
  24.         fclose($fh);
  25.     } else {
  26.         echo "error...";
  27.     }
  28.     ?>

Etiquetas: descarga
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 15:20.