Re: Almacenamiento archivos multimedia en la nube

From: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
To: "Romero, Fernando" <Fernando(dot)Romero(at)lineamitre(dot)gob(dot)ar>
Cc: Martín Díaz <mardiaz28(at)yahoo(dot)com(dot)ar>, Patty <ptlr74(at)yahoo(dot)com>, Postgres Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Almacenamiento archivos multimedia en la nube
Date: 2015-05-06 02:38:52
Message-ID: CANm+PCA1QrEGV+tmTxwWMaa2k=es6L-STQW8LvhrBaXhB9nqUQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Un ejemplo (no se enojen, a pesar de que es php, hay mucho de Postgres aquí)
*edit_profilepicture.php*
<?php
//....
//....
$arc = $_FILES["pos_foto"]["tmp_name"];
$size = $_FILES["pos_foto"]["size"];
$sizemb = round(($size / 1024) / 1024 , 2);
$tipo = $_FILES["pos_foto"]["type"];
$nombre = basename($_FILES["pos_foto"]["name"]);
if ((exif_imagetype($arc) != IMAGETYPE_JPEG) or ($sizemb > 1) ) {
//No guardar
}else{
$fp = fopen($arc, "rb");
$contenido = fread($fp,$size);
fclose($fp);
if (!$contenido){
//No se pudo leer el archivo
} else {
$escaped = bin2hex( $contenido );
$query = "UPDATE tabla SET foto = decode('{$escaped}' , 'hex')
WHERE id=$id";
$conn = Db::getInstance();
$result = pg_query($conn, $query);
if (!$result) {
//Error al grabar
}
else {
if (pg_affected_rows($result) == 0){
//No se guardó nada
}
else {
//Guardado
}
}
pg_free_result($result);
}
}
}
?>
<html>
....
....
<form id="form_foto" action="edit_picture.php" method="post"
enctype="multipart/form-data">
<fieldset>
<p><label for='pos_foto'>Fotografía (jpg)</label><input name="pos_foto"
id="pos_foto" type="file" size="30"/><span></span></p>
<p>
Sugerencia: Prepará una imágen jpg de 100 x 100 pixeles<br>
De esta manera obtendrás una foto con buena resolución en tu perfil.
</p>
<button id="btnIngreso" class='ui-button-primary'
type="submit">Guardar</button>
</fieldset>
</form>
....
....
</html>

*menu_foto.php*
<div>
<br>
<p style="text-align:center;"><a href="edit_profilepicture.php"
style="text-decoration: none;">
<img src="*show_foto.php*" title="Hacé clic para modificar"
alt="Foto del perfil" height="100" width="100" style="-moz-box-shadow: 0 0
5px #333;
-webkit-box-shadow: 0 0 5px #333;
box-shadow: 0 0 5px #333;"/>
</a></p>
<br>
</div>

*show_foto.php*
<?php
//Guillermo Villanueva
//Mod: 11/06/2012 19:00
session_start();
include_once("classconexion.php");
include_once("fnforms.php");
$conn = Db::getInstance();
$sql = "SELECT coalesce(encode(foto, 'base64'),'sf') AS foto FROM tabla
WHERE id=$id";
$result = pg_query($conn, $sql);
header("Content-Type: image/jpeg");
if (!$result) {
//error sin foto
}else{
$imagen = pg_fetch_result($result,0,0);
if ($imagen=='sf'){
$imagen = file_get_contents('image/sinimagen.jpg');
echo $imagen;
}else{
$imagen = pg_fetch_result($result,0,0);
echo base64_decode($imagen);
}
}
pg_free_result($result);
?>

Guillermo Villanueva
<http://ar.linkedin.com/in/guillermovillanueva>

El 4 de mayo de 2015, 14:05, Romero, Fernando <
Fernando(dot)Romero(at)lineamitre(dot)gob(dot)ar> escribió:

> Guillermo como estas, podes pasarme el código.
> Estuve tratando de guardar pdf con php en la base sin resultados.
>
> Saludos
>
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:
> pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Guillermo E. Villanueva
> Enviado el: lunes, 04 de mayo de 2015 01:40 p.m.
> Para: Martín Díaz
> CC: Patty; Postgres Ayuda
> Asunto: Re: [pgsql-es-ayuda] Almacenamiento archivos multimedia en la nube
>
> Martín si optás por el lado de almacenar en la misma DB puedo pasarte mi
> código (postgresql + php) pero si vas para la otra opción, creo que será
> cuestión de guardar las URL nada mas (y leer bien las condiciones del
> servicio que utilices, no vaya a ser que cambien las URL o tengan alguna
> limitación).
>
>
> Guillermo Villanueva
>
>
> El 4 de mayo de 2015, 12:57, Martín Díaz <mardiaz28(at)yahoo(dot)com(dot)ar>
> escribió:
> Ante todo, gracias por el consejo.
>
> Si tuve en cuenta ese tema, pero lo contrasté con las ventajas en cuanto a
> capacidad de almacenamiento y de ancho de banda para consultas concurrentes
> (es una aplicación web) que ofrecen los sitios dedicados a estos fines.
> Pero estoy analizando pro y contras de cada caso.
>
> Saludos
>
>
> El Lunes, 4 de mayo, 2015 12:42:22, Patty <ptlr74(at)yahoo(dot)com> escribió:
>
> He trabajado con imágenes lo mejor es tenerlas en la base de datos pues
> los que tu mencionas son públicos y cualquiera puede ver la información.
>
> Para que lo tomes en cuenta.
>
>
> Enviado desde Samsung Mobile
>
>
> -------- Mensaje original --------
> De: Martín Díaz
> Fecha:04/05/2015 9:23 AM (GMT-06:00)
> A: Postgres Ayuda
> Asunto: [pgsql-es-ayuda] Almacenamiento archivos multimedia en la nube
>
> Estimados.
>
> Estoy viendo la implmentación de un sistema que acceda a imágenes y videos.
> Estuve evaluando la posibilidad de almacenarlos en la base de datos, pero
> me parece más útil emplear servicios como Youtube y Flikr y dejar en las
> bases (servidores que deben trabajar con replicación) simplemente los links.
>
> Alguien tiene experiencia en algo así, como para darme un par de
> recomendaciones?
>
> Muchas gracias
>
> Saludos...md
>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2015-05-06 15:50:17 Ayuda para optimizar consulta
Previous Message Luis Fernando Ortiz Vera 2015-05-04 21:05:49 Re: AYUDA SOBRE BASE EN NAS