Rails + PDF + mysql = ?, algun consejo?

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

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 →

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.

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 →
GitHub - thoughtbot/paperclip: Easy file attachment management for ActiveRecord

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.

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?

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 :

<%= documento.nombre %>

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.

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?

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 :

<%= documento.nombre %>

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.

De nada Juan!

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’]) }

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?

hola matoo, exactamente tu donde quieres ponerlo?, porque yo al final
logre fue subirlos en una BD, que mensaje de error te da?