El 30 de junio de 2009 01:24, Pablo Quiroga<[email protected]> escribió: > El 25 de junio de 2009 08:22, Juan Pablo Marzetti<[email protected]> escribió: >>> Hola Lista, >>> >>> Resulta que estoy necesitando subir archivos por http post a un >>> server, con un maximo de 200mb y con un monitor de progreso. Las >>> soluciones van desde ajax (con peticiones a un php que devuelve lo >>> subido hasta el momento) con iframe y un script cgi en perl que se >>> encarga del upload y uploaders flash que se encargan de enviar los >>> archivos a scripts en php. Claro que flash si puede monitorear el >>> progreso, pero tiene el limite de tamaño definido por el php.ini, que >>> en algunos shared hostings no se puede cambiar (he ahi un problema) y >>> un limite propio de 100mb segun estuve leyendo por la interné. >>> >>> Investigue un monton, busque scripts pero lentamente estoy llegando a >>> un callejon sin salida. Vamos por partes: >>> >>> a) Quiero evitar flash a toda costa. >>> >>> b) El monitor de progreso es indispensable. >>> >>> c) El script en perl tiene el problema de ser lento (al menos el que >>> estuve probando). No tiene limites para el upload dado que no le da >>> bola al limite fijado en el php.ini por razones obvias :P Un archivo >>> de unos 1.9mb demora mas de 1min localmente, mientras que en php dura >>> muchisimo -pero muchisimo- menos. >>> >> >> Hola: >> >> Yo tuve un problema similar. Para el progreso en la suba de archivos >> si o si necesitas algo más que el explorador. El mismo gmail utiliza >> flash (si bien la barrita es html, hay un flash que hace el post del >> archivo) Ademas lo ideal para sortear los límites de archivos es subir >> el archivo por partes. Para eso necesitas o flash o un applet de Java. > > Bueno, muchas gracias por las respuestas. > > Estuve viendo varias alternativas para esta barrita de progreso. La > verdad, es algo necesario, pero que es bastante dificil de encontrar. > Al menos asi me parece. > > Son tres las posibilidades que he analizado: > > 1) Usar flash para el uploader > > Pro: > Muy sencillo de implementar. > Contras: > a) Es flash > b) Tiene un limite de 100mb para los uploads segun he leido > c) El limite tambien depende de algunas opciones de apache. > > 2) PHP, Perl-CGI, Javascript > La idea es usar un script en perl-cgi que se encargue de recibir el > archivo y de ir registrando el progreso del upload. Con php y > javascript se obtienen los datos que genera el script cgi > > Pros: > a) No es flash ;) > b) El tamaño del archivo no esta limitado por opciones de apache, > ya que el que recibe el upload es el script cgi > > Contras: > a) Es un poco complejo de implementar "bien" > b) No hay mucha documentacion al respecto > > 3) PHP-APC, Javascript > > Se utiliza la extension APC de PHP para que haga un monitoreo del > upload (basado en RFC1867 que versa sobre los uploads). Despues es > cuestion de hacer un polling con javascript para actualizar los datos. > > Pros: > a) Muy sencillo de implementar > b) Hay documentacion sobre el tema > > Contras:
(fucking gmail... seguimos..) Contras: a) Limitacion del tamaño de los archivos en la configuracion de php (y Apache) La principal limitacion que tengo es que necesito correr eso en un shared hosting, los que por lo general no tienen la posibilidad de hacer algunos ajustes en php y en apache, y/o no tienen instalado php-apc por "politicas" de seguridad o de lo que sea. Asi que de las 3 alternativas (seguro hay un par mas, pero hasta aca llego) me tengo que quedar con la de perl-cgi + php + javascript, ya que si puedo correr scripts de perl-cgi en el shared hosting, con lo que mi problema quedaria resuelto. Me faltaria solo testear el sistema completo para ver varias cosas. La implementacion que encontre revisando los comentarios de un post, se llama uber-uploader[1]. Es un proyecto en Sourceforge de licencia MPL, que esta bastante maduro y con muchas opciones de configuracion. Estuve probandolo localmente y funciona de mil maravillas. De nuevo, muchas gracias por las respuestas, me fueron muy utiles. Luego les cuento como me fue con esto ;) [1] http://uber-uploader.sourceforge.net/ -- Pablo Daniel Quiroga | BLiTux http://blitux.tumblr.com Linux Registered User #458695
