Forum: Rails-ES rails + PDF + mysql = ??, algun consejo?

Posted by Juan Bolivar (jcho360)
on 2010-08-30 23:16
hola todos que tal?, tengo un problemita con un sistema en rails, estoy
haciendo un sistema manejador de documentos, y no he logrado subir los
documento (en este caso serian PDF's) a la base de datos (mysql), he
buscado por internet y lo que he conseguido es como subirlos a un
fichero en la misma app, he ojeado plug ins tal como el
attache_fu, pero no he conseguido algo que me funcione de verdad, algun
consejo de que puedo hacer??? o como hacer??, me comentaron que ya ruby
trae esos metodos pero no los he conseguido...
Gracias de Antemano
Atte
jcho360
datos extras... el campo de la tabla donde quiero montarlo es un
longblob y la idea es poner alli los archivos PDF's
Posted by Rafa Latorre (sauco82)
on 2010-09-10 13:59
Juan Bolivar wrote:
> hola todos que tal?, tengo un problemita con un sistema en rails, estoy
> haciendo un sistema manejador de documentos, y no he logrado subir los
> documento (en este caso serian PDF's) a la base de datos (mysql), he
> buscado por internet y lo que he conseguido es como subirlos a un
> fichero en la misma app, he ojeado plug ins tal como el
> attache_fu, pero no he conseguido algo que me funcione de verdad, algun
> consejo de que puedo hacer??? o como hacer??, me comentaron que ya ruby
> trae esos metodos pero no los he conseguido...
> Gracias de Antemano
> Atte
> jcho360
> datos extras... el campo de la tabla donde quiero montarlo es un
> longblob y la idea es poner alli los archivos PDF's

No deberías meter los PDF en una base de datos es bastante ineficiente, 
y en general dan bastante problemas cuando los estás manipulando.

La solución que mejor me ha ido a mí hasta ahora es Paperclip -> 
http://github.com/thoughtbot/paperclip

El plugin da mucha funcionalidad tanto para el manejo de archivos como 
de imágenes guardando los archivos dentro de la jerarquía de ficheros y 
guardando en la base de datos referencias a dichos archivos.

De este modo además acelerarás la descarga de los PDFs pues no será 
necesario realizar una consulta a la base de datos para descargarlos.
Posted by Juan Bolivar (jcho360)
on 2010-09-10 15:34
hola que tal?, gracias por responder, ya lo habia logrado montar en la 
BD, pero tampoco estoy muy convencido d eso, tu me recomiendas dejarlo 
en una carpeta dentro de la app??, t comento que despues tengo q 
convertirlos en texto plano para realizar busqueda de palabras dentro de 
los archivos (la app es un buscador de palabras dentro de los archivos 
pdf), cual es tu opinion y tu consejo?
> 
> No deberías meter los PDF en una base de datos es bastante ineficiente, 
> y en general dan bastante problemas cuando los estás manipulando.
> 
> La solución que mejor me ha ido a mí hasta ahora es Paperclip -> 
> http://github.com/thoughtbot/paperclip
> 
> El plugin da mucha funcionalidad tanto para el manejo de archivos como 
> de imágenes guardando los archivos dentro de la jerarquía de ficheros y 
> guardando en la base de datos referencias a dichos archivos.
> 
> De este modo además acelerarás la descarga de los PDFs pues no será 
> necesario realizar una consulta a la base de datos para descargarlos.
Posted by Rafa Latorre (sauco82)
on 2010-09-10 21:17
Sí, en general te recomiendo guardar los archivos en una carpeta dentro 
de app, cosa de la que se ocupa Paperclip automáticamente (por defecto 
lo guarda en una carpeta dentro de public, dejando por tanto los 
archivos libremente accesibles, pero es posible usar carpetas privadas)

Así con tan poca información es difícil de saber qué consideraría más 
adecuado. ¿Los documentos se suben originariamente como PDF o son texto 
plano? ¿Se crea un índice de palabras? ¿se realiza la búsqueda mediante 
fuerza bruta? ¿Utilizas alguna subaplicación que busca sobre los PDF?
Posted by Juan Bolivar (jcho360)
on 2010-09-10 21:58
Hola rafa, gracias por responder, te cuento... es un sistema 
administrador de tesis en PDF (solamante PDF), la idea es guardar el 
pdf, transformarlo en texto plano, recorrer el documento y almacenar por 
palabras, numero de repeticiones y ID del documento en una BD, de manera 
que ya toda la informacion esta precargada en el sistema, al momento de 
realizar la busqueda solo se recorren las tablas para mostrar los 
resultados, no es tan rapido, pero creo que funcionaria con pocos 
archivos subidos,esa es la principal idea de como hacerlo, tu que 
piensas?
P.D todo se desarrollaria en rails, a lo sumo utilizando plugins
Gracias

Rafa Latorre wrote:
> Sí, en general te recomiendo guardar los archivos en una carpeta dentro 
> de app, cosa de la que se ocupa Paperclip automáticamente (por defecto 
> lo guarda en una carpeta dentro de public, dejando por tanto los 
> archivos libremente accesibles, pero es posible usar carpetas privadas)
> 
> Así con tan poca información es difícil de saber qué consideraría más 
> adecuado. ¿Los documentos se suben originariamente como PDF o son texto 
> plano? ¿Se crea un índice de palabras? ¿se realiza la búsqueda mediante 
> fuerza bruta? ¿Utilizas alguna subaplicación que busca sobre los PDF?
Posted by Rafa Latorre (sauco82)
on 2010-09-11 11:48
Pues sin ninguna duda te diría que utilices Paperclip es muchísimo más 
sencillo y cómodo que trabajar con archivos dentro de la base de datos y 
proporcionar dichos archivos sería tan sencillo como escribir :

<a href="<%= documento.archivo %>"> <%= documento.nombre %> </a>

Mucho más sencillo que el chorizo necesario al utilizar directamente 
blobs ¿eh?

El problema es si quieres ofrecer esos archivos de forma privada, que se 
puede, pero no sé como, eso tendrías que buscarlo en la documentación.
Posted by Juan Bolivar (jcho360)
on 2010-09-11 21:21
oye rafa le voy a dar una probada al famoso paperclip... Muchas gracias 
de verdad por tu tiempo y tus consejos, creo q al final voy a modificar 
lo que tenia y guardar los pdf's dentro dentro d una carpeta en la app, 
asi seria un poco mas rapida y menos pesada la BD...GRACIAS!....


Rafa Latorre wrote:
> Pues sin ninguna duda te diría que utilices Paperclip es muchísimo más 
> sencillo y cómodo que trabajar con archivos dentro de la base de datos y 
> proporcionar dichos archivos sería tan sencillo como escribir :
> 
> <a href="<%= documento.archivo %>"> <%= documento.nombre %> </a>
> 
> Mucho más sencillo que el chorizo necesario al utilizar directamente 
> blobs ¿eh?
> 
> El problema es si quieres ofrecer esos archivos de forma privada, que se 
> puede, pero no sé como, eso tendrías que buscarlo en la documentación.
Posted by Rafa Latorre (sauco82)
on 2010-09-11 21:25
De nada Juan!
Posted by Matoo Matooo (matooo)
on 2011-02-07 20:22
Juan una consulta no he conseguido es como subirlos a un
fichero en la misma app, pero si bajar archivos desde la carpeta app.

File.open(path, "wb") { |f| f.write(archivo['rutaarchivo']) }
Posted by Juan Bolivar (jcho360)
on 2011-02-07 21:04
hola matoo, exactamente tu donde quieres ponerlo?, porque yo al final 
logre fue subirlos en una BD, que mensaje de error te da?
Posted by Matoo Matooo (matooo)
on 2011-02-08 16:55
Tengo q realizar algo parecido a lo q hiciste, es lo mismo si lo hago en 
una carpeta o en la bbdd, en carpeta no lo puedo guardar pero en bbdd 
todavía no investigo emprenderé por ese camino, alguna recomendación?

Juan Bolivar wrote in post #980123:
> hola matoo, exactamente tu donde quieres ponerlo?, porque yo al final
> logre fue subirlos en una BD, que mensaje de error te da?
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.