Cita:
Iniciado por oskarL Evitaras problemas con los permisos, pero tendras problemas con el tamaño de la base de datos. Dile a tu jefe que no es una solucion valida... te lo digo por experiencia propia, jeje.
Teniamos una base de datos en la que se insertaban los archivos en la base de datos directamente, y llego un momento en el que era imposible gestionarla debido al gran tamaño que ocupaba. Ten en cuenta que si, por ejemplo, quieres meter un archivo que ocupe 5 megas, el tamaño de la base de datos aumenta tambien 5 megas.
Si aun asi quieres hacerlo, tienes que meter las imagenes en un campo del tipo BLOB y con la funcion de MySQL LOAD_FILE. Yo no te puedo ayudar mucho mas porque no lo he usado nunca
Yo suelo ser "imparcial" .. hay que exponer los "pro's" y "contras" de ambos métodos para gestionar archivos sobre una "BBDD".
Por ejemplo .. un tema de gestión de permisos sobre los archivos/protección y generación de respaldos/backups rápidos y compactos (hablo de "datos" como así lo entenderá la aplicación sean "archivos binarios" o de "texto plano") .. la opción de gestionar los datos como "binarios" sobre la BBDD suele ser la mejor opción. También se hace necesario usar esta técnica cuando esos datos "binarios" han de ser accedidos por otros lenguajes -no PHP- .. por ejemplo el caso típico donde tenemos interface PHP y "visual Basic" para meter "mano" a los datos indistintamente. Por supuesto este método tiene sus "contra" que ya los han expuesto.
Pero .. como "técnica" que es... si bien nos estamos limitando a un motor de BBDD concreto: Mysql .. tal vez otro motor de BBDD sea el más idoneo para gestionar grandes cantidades de datos por registro/campo (Oracle, MS SQL Server? .. PostgreSQL .. etc).
Aquí lo que sucede es que si nos "centramos" en que estamos desarrollando aplicaciones eminetemente "web" .. donde no hay previsión de acceso de esos datos por otros lenguajes/médios .. y que nos forzamos a usar "Mysql" como BBDD .. en ese caso suele ser más eficiente direccionar los archivos al sistema de archivos del servidor y almacenar o gestionar en tus BBDD el dato del "nombre del archivo" sólo.
En resumen .. no hay sistema "malo" o ineficiente .. hay que ver ante que tipo de proyecto y requerimientos estamos para ver que opción nos vendría mejor.
(Y eso que yo hice el manual mencionado: Tutorial ejemplo: Subir archivos a tu BD (guardando en la BD en binario) pero sin embargo no me "caso" con ningún método por defecto .. siempre evaluo el proyecto a aplicar uno un otro método).
Un saludo,