Foros del Web » Programando para Internet » PHP »

obligar descarga archivos 50 MB

Estas en el tema de obligar descarga archivos 50 MB en el foro de PHP en Foros del Web. buenas, pues mi duda es esa, como hago paa que cuando un usuario "clickee" un link se haga la descarga oblidada de un archivo aprox ...
  #1 (permalink)  
Antiguo 24/07/2006, 16:21
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 11 años, 6 meses
Puntos: 0
obligar descarga archivos 50 MB

buenas, pues mi duda es esa, como hago paa que cuando un usuario "clickee" un link se haga la descarga oblidada de un archivo aprox de 50Mb, estoy probando con el content pero lei por ahi que solo sirve hasta para 16 mb, alguna idea

gracias por su ayuda, realmente ayudan :)
  #2 (permalink)  
Antiguo 24/07/2006, 19:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por luz506
buenas, pues mi duda es esa, como hago paa que cuando un usuario "clickee" un link se haga la descarga oblidada de un archivo aprox de 50Mb, estoy probando con el content pero lei por ahi que solo sirve hasta para 16 mb, alguna idea

gracias por su ayuda, realmente ayudan :)
Y donde leistes eso? .. que es el "content" (será parte del protocolo HTTP y su "content-type"?).

Bueno .. las limitaciones en general no vienen dadas por el "protocolo" (en estos casos y HTTP en concreto) sino por quien "lo sirve" .. es decir, tu servidor HTTP. ¿Cual usas? ¿tienes acceso a su configuración?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/07/2006, 15:24
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta

Este es mi codigo:
- un script bajando.php:
Código PHP:
<?
$id
=$_GET["id"];
header('Content-Disposition: attachment; filename='.$id);
header ("Content-Type: application/octet-stream"); 
header ("Content-Length: ".filesize($id)); 
readfile($id); 
?>
- una pagina html
Código HTML:
<a href="bajando.php?id=infobarra.jpg">infobarra.jpg</a> 
y funciona pero solo para archivos pequeños, pero tengo archivos grandes, mucho muy grandes, 50 Mb ó 70,
como puedo saber la configuracion del servidor, auxilioooooooo
  #4 (permalink)  
Antiguo 25/07/2006, 16:54
 
Fecha de Ingreso: julio-2006
Mensajes: 1
Antigüedad: 11 años, 5 meses
Puntos: 0
hola..... tengo una duda, existe alguna funcion en php que regrese que tipo de extension tiene un archivo cuando lo sacas de una base o algun directorio...., por ejemplo un pdf cuando lo subes el tipo es application/pdf...
o un exe es application/octet-stream... seria una funcion para que te regrese la extension..
  #5 (permalink)  
Antiguo 25/07/2006, 17:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. en ese caso tu archivo pasa por completo por PHP y este a su vez impone limitaciones en la memoria que puede gestionar en total para un script (su ejecución).

Podrías usar en lugar de readfile() .. passthru(). Esta función va enviando en bloques la información .. así que nunca cara a tu script PHP manejaría el total del tamaño del archivo que gestiona.

http://www.php.net/passthru

No sé que sistema operativo usas en el servidor .. pero en php.net hablan de su uso según el ejemplo que expones pero en lugar de tu readfile() usar:

Código PHP:
passthru("cat $id",$err); 
Otras soluciones sería tal vez usando fopen() en bloques e ir entregando -de a poco- al cliente el archivo que lees igualmente en bloques. Lo importante es no forzar a PHP a que lea todo el archivo en "memoria" de una.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 25/07/2006, 18:52
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 11 años, 6 meses
Puntos: 0
gracias, le cambie el readfile por passtru pero me baja archivos de tamaño cero, estoy investigndo, pero me queda otra duda, como mandas el archivo "de a pocos" , es que no se mucho, casi nada, respecto a transferencia de archivos
  #7 (permalink)  
Antiguo 26/07/2006, 07:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El tema del "passthru()" ojo porqué ejecuta un comando en el Sistema operativo .. (en el ejemplo está orientado a Linux y usa "cat").

Cita:
como mandas el archivo "de a pocos"
Revisando la documentación (por qué no me acordaba ya ..) .. tienes la función directa:

fpassthru()
http://www.php.net/manual/en/function.fpassthru.php

Fijate en los ejemplos (sobre todo de los comentarios de los usuarios de esa función) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 26/07/2006, 15:54
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 11 años, 6 meses
Puntos: 0
gracias investigare mas :)
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 05:32.