Foros del Web » Programando para Internet » PHP »

Descargar varios archivos en uno solo php

Estas en el tema de Descargar varios archivos en uno solo php en el foro de PHP en Foros del Web. Hola, quisiera hacer una pagina donde el usuario pueda descargar varias imagenes cumpliendo ciertos criterios en un solo archivo, había pensado hacerlo creando un "zip" ...
  #1 (permalink)  
Antiguo 04/05/2012, 10:04
 
Fecha de Ingreso: mayo-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Pregunta Descargar varios archivos en uno solo php

Hola, quisiera hacer una pagina donde el usuario pueda descargar varias imagenes cumpliendo ciertos criterios en un solo archivo, había pensado hacerlo creando un "zip" para esto he usado la clase pclzip.lib.php y la clase zipstream.php que encontré en la web, pero ninguna de las 2 funcionan. En la primera me sale un mensaje de error del servidor y en la segunda que lo crea "al vuelo" se corta la descarga. El caso es que requiero bajar cerca de 800 archivos en uno solo. alguien ha trabajado con estas clases o tiene alguna otra forma de hacerlo que me pueda ayudar?

De ante mano gracias.
  #2 (permalink)  
Antiguo 04/05/2012, 11:07
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Descargar varios archivos en uno solo php

Hola:

No he utilizado ninguna de estas dos clases pero al parecer por el número de archivos que se necesitan comprimir el problema es en el tiempo máximo de ejecución de un script.

Para descartar que el problema sea de la clase comienza comprimiendo 5 archivos, luego 10, etc. Si en algun momento al subir el número de archivos revienta prueba a cambiar el limite de tiempo del script.

http://php.net/manual/es/function.set-time-limit.php

Igual lee el manual porque esta función no se puede usar cuando PHP se usa en modo seguro, en el manual esta completa la ayuda.

Espero que con esto se solucione tu problema o por lo menos sirva para replantear el problema.
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 04/05/2012, 11:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Descargar varios archivos en uno solo php

Cita:
Iniciado por cuasatar Ver Mensaje
Hola:

No he utilizado ninguna de estas dos clases pero al parecer por el número de archivos que se necesitan comprimir el problema es en el tiempo máximo de ejecución de un script.

Para descartar que el problema sea de la clase comienza comprimiendo 5 archivos, luego 10, etc. Si en algun momento al subir el número de archivos revienta prueba a cambiar el limite de tiempo del script.

[url]http://php.net/manual/es/function.set-time-limit.php[/url]

Igual lee el manual porque esta función no se puede usar cuando PHP se usa en modo seguro, en el manual esta completa la ayuda.

Espero que con esto se solucione tu problema o por lo menos sirva para replantear el problema.
Gracias cuasatar.

Despues de hacer varias pruebas parece que el problema es en mi servidor remoto ya que de manera local por lo menos he logrado hacerlo con 100 aprox. numero de imagenes. Así mismo ya estoy usando en mi scipt
Código PHP:
Ver original
  1. ini_set("memory_limit","100M");

Y aun así no se puede. Mi mayor problema es que el servidor no me dice cuál es el error ya que solo obtengo esto:

The page cannot be displayed because an internal server error has occurred.

Ahora, a partir de tu comentario me surgieron 2 dudas que espero me ayudes (o alguien más que vea mi tema):

¿Cómo puedo saber si php está en modo seguro?
¿Puede darse el caso que el servidor web de mi hosting tenga sus propias restricciones de tiempo de ejecución y memoria?
  #4 (permalink)  
Antiguo 04/05/2012, 12:04
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Descargar varios archivos en uno solo php

Cita:
¿Cómo puedo saber si php está en modo seguro?
Hola, pues es muy sencillo. Simplemente debes ir a el phpinfo de la web y buscar en el php core la directiva safe_mode

igual si no lo tiene tu pagina con un simple script como este

Código PHP:
<?php
phpinfo
();
?>
Lo puedes averiguar.

(Por cierto averiguando tu pregunta me he enterado que para php 5.4 la directiva ha sido declarada obsoleta, pero seguro la mayoria de los servidores no tendran la ultima versión)

Cita:
¿Puede darse el caso que el servidor web de mi hosting tenga sus propias restricciones de tiempo de ejecución y memoria?
Es posible que si porque desde el archivo php.ini ellos pueden controlar los tiempos máximos. Para eso nada mejor que ponerse en contacto con ellos. Te ayudaran a solventar esa duda.

Espero sea de ayuda. Igual en el servidor remoto has la prueba poco a poco 5,10,15,etc y prueba a ver si funciona o de plano no funciona nunca.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 04/05/2012 a las 12:17
  #5 (permalink)  
Antiguo 04/05/2012, 12:54
 
Fecha de Ingreso: mayo-2012
Mensajes: 32
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Descargar varios archivos en uno solo php

Resulta que el safe_mode está en off por lo que tendría que hacerle caso a mis directivas de tiempo y memoria independientemente de lo que diga el php.ini, o no?

Con archivos de poco en poco si lo hacía bien, aunque ya no recuerdo hasta cuántos se pudo (ya he hecho muchas pruebas). Pero volveré a probar y creo que lo mejor será poner al usuario a bajar de poco en poco. mientras encuentro otra opción.
  #6 (permalink)  
Antiguo 04/05/2012, 16:54
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Descargar varios archivos en uno solo php

Cita:
Con archivos de poco en poco si lo hacía bien, aunque ya no recuerdo hasta cuántos se pudo (ya he hecho muchas pruebas). Pero volveré a probar y creo que lo mejor será poner al usuario a bajar de poco en poco. mientras encuentro otra opción.
Pues si, pero parece que vas por buen camino porque ya has solucionado parcialmente el problema. No se como consultas las imagenes para comprimirlas y bajarlas pero se me ocurre una idea.

Si tienes por ejemplo 100 imagenes y sabes que solo permite comprimir 20 a la vez crea 5 enlaces y que cada enlace permita descargar 20 imagenes, es decir uno de la 1 a la 20 otro de la 21 a la 40 y asi sucesivamente.

Igual no sobra preguntar al proveedor de servicios del servidor sobre soporte de tiempo maximo de ejecucion de scripts, seguro te podran colaborar.
__________________
Blog de humor http://elcuasatar.net63.net/
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:08.