Título: Hosting de imágenes sin base de datos mysql-sqlite ni archivos en carpetas Publicado por: WHK en 23 Mayo 2011, 03:33 am Actualmente algunos hosting dan espacio ilimitado pero un detalle que nunca nos fijamos es que cuando lo compramos vemos en el cpanel un indicador el cual nos indica el límite de número de archivos :xD y eso en parte nos hecha por tierra todo el plan de hacer cosas como hosting de archivos, imágenes, etc.
Otra alternativa era alojar los archivos dentro de la base de datos codificados en base64 pero eso causaría una sobrecarga significativa si las visitas son numerosas. Por lo tanto ideé una forma de alojar nuestros archivos de la siguiente manera: Lo que vamos a hacer es crear un solo archivo como base de datos y le vamos a ir agregando al final todos los archivos de forma binaria, uno tras otro y de esta forma podremos alojar todos nuestros archivos en uno solo. Algunos dirán que si la base de datos es enorme tendremos problemas de memoria,... pues no debido a que el script que haremos tomará el archivo y posicionará el puntero en el bite correspondiente a la imágen y luego obtendrá la cantidad de bites necesarios y luego finalizará. Esto lo he probado con un iso de casi 3GB, he descargado solo 1MB a partir del bite que está posicionado en 500MB hasta 1MB después y el script anda rapidisimo, en menos de 0,2 segundos lo obtiene completamente y te lo entrega sin problemas ni uso excesivo de memoria ya que no cargará los 3GB sino solo 1MB. Cómo límite vamos a configurar nuestro script para que se pueda subir y descargar archivos de hasta 2MB. Código
Ahora el archivo subido nos quedará así: Código: /500_10.jpg Para interpretar esto necesitamos un htaccess: Código: # MiniHostingIMG V1.0 by DrawCoders Si se fijan el error 404 le puse el contenido directo (que ustedes pueden modificar o poner una url) y el index en cualquier parte para que no de problemas al poner nuestro sistema en un subdirectorio y no tengamos que editar todo manualmente. Recuerden que deben dar permisos de escritura a la base de datos. El nombre de la base de datos le puse que comenzara en .ht... porque por defecto el servidor apache impide la visualización directa de estos archivos porque supuestamente son de configuración. Ejemplo de prueba momentaneo: http://www.webcomparte.com/lab/hotingimg/ (http://www.webcomparte.com/lab/hotingimg/46124_82941.jpg) (http://www.webcomparte.com/lab/hotingimg/155625_130020.jpeg) Además le puse un header para el caché, de esta forma la gente cargará una sola ves la imágen impidiendo la sobrecarga. El diseño se lo ponen ustedes a su antojo. Cualquier duda me la escriben. Saludos. Título: Re: Hosting de imágenes sin base de datos mysql-sqlite ni archivos en carpetas Publicado por: Nakp en 23 Mayo 2011, 06:11 am sabes que es lo que me sorprende? ademas de la idea que tuviste para alojar las imagenes.. bastante ingeniosa por cierto... estas identando el codigo!!!! y muchos no creen en el fin del mundo :¬¬ señores!! se acerca!!!
Título: Re: Hosting de imágenes sin base de datos mysql-sqlite ni archivos en carpetas Publicado por: madpitbull_99 en 23 Mayo 2011, 21:45 pm Es buena idea y muy bueno el script, acabo de probarlo:
(http://www.webcomparte.com/lab/hotingimg/817432_288742.gif) En algunos hostings compartidos he encontrado límite por archivo de 3 y 4 GB, por lo que, al llegar a ese tope podrías tener problemas, en Linux se mira con ulimit -a. Citar Otra alternativa era alojar los archivos dentro de la base de datos codificados en base64 pero eso causaría una sobrecarga significativa si las visitas son numerosas. Esto es poco recomendable por la mayoría de los programadores, en la base de datos solo se guarda la ruta absoluta hacia la imagen. |