Foros del Web » Programando para Internet » PHP »

Error en descarga forzada

Estas en el tema de Error en descarga forzada en el foro de PHP en Foros del Web. Hola, desde hace tiempo estoy usando un sistema de descargas forzadas por PHP. Funcionó bien en todos los sitios, pero ahora, en otro sitio, algunas ...
  #1 (permalink)  
Antiguo 16/05/2011, 11:21
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Error en descarga forzada

Hola, desde hace tiempo estoy usando un sistema de descargas forzadas por PHP. Funcionó bien en todos los sitios, pero ahora, en otro sitio, algunas descargas fallan. Es como si no pudiese leer algunos archivos.
Arroja un error del tipo: "no se puede mostrar la página".
Funciona corréctamente con la mayoría de los archivos pero no lee una minoría.
Aclaro que probé las urls obtenidas de forma completa y descarga el archivo, pero si pongo la url del navegador entre "readfile" no funciona.

Les dejo el script:

Código PHP:
$file='Nombre de archivo alterado';
$file_name='nombre completo del archivo';
$tamaño=@filesize("carpeta1341395jdf/".$file_name);
header('Pragma: public');  
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$file.'');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.$tamaño);
@readfile("carpeta1341395jdf/".$file_name); 
¿Alguna idea? gracias.
  #2 (permalink)  
Antiguo 17/05/2011, 20:28
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Error en descarga forzada

Por si le sirve a alguien: Al parecer no funciona corréctamente con archivos mayores a 130 mb's. Deben usar fopen y recortar el archivo en pequeñas partes - fread() -. Imprimir el buffer y usar las funciones ob_flush() y flush()

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 08:57.