oFile = GETFILE()

   rgl= CREATEBINARY(FILETOSTR(oFile))

 

                Esto lo hago luego en postgresql

 

      UPDATE productos SET image_producto = encode(?rgl,'base64') WHERE 
idproducto = '610934995534   '

 

Me sale esto : The # of binded parameters < the # of parameters markers….

 

MK

 

De: pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Hector R. De los 
Santos 
Enviado el: viernes, 20 de noviembre de 2015 08:58 a.m.
Para: Lista Postgres ES <pgsql-es-ayuda@postgresql.org>
Asunto: Re: [pgsql-es-ayuda] Manera correcta de grabar una imagen

 

MKHotmail,

Como bien te recomienda Dorian, lo mejor es usar campos de tipo bytea para 
almacenar imagenes (o cualquier otro tipo de documentos).

Para la codificacion y de-codificacion puedes usar las mismas de PostgreSQL.

 

http://base64decode.net/postgresql-decode

http://base64encode.net/postgresql-encode

 

Hugo,

Esa no es la clase de Victor Espina?, creo que debiste dar los credito. 

Aqui en link

http://www.victorespina.com.ve/wiki/index.php?title=Parser_Base64_para_VFP_usando_CryptoAPI

 

Saludos,

 




:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux | PostgreSQL
Web: http://hdsconsultores.net
Blog: http://codigohds.com
Linux User #:320363 

 

El 20 de noviembre de 2015, 7:15 a. m., Hugo Germigniani - 
ProfInd<h...@profind.com.ar <mailto:h...@profind.com.ar> > escribió:

Aca va una clase usando CryptoAPI

 

DEFINE CLASS base64Helper AS Custom

*

 *-- Constructor

PROCEDURE Init

  *

  DECLARE INTEGER CryptBinaryToString IN Crypt32;

        STRING @pbBinary, LONG cbBinary, LONG dwFlags,;

        STRING @pszString, LONG @pcchString

 

  DECLARE INTEGER CryptStringToBinary IN crypt32;

        STRING @pszString, LONG cchString, LONG dwFlags,;

        STRING @pbBinary, LONG @pcbBinary,;

        LONG pdwSkip, LONG pdwFlags

  * 

 ENDPROC

 

 

* encodeString

* Toma un string y lo convierte en base64

*

PROCEDURE encodeString(pcString)

  LOCAL nFlags, nBufsize, cDst

  nFlags=1  && base64

  nBufsize=0

  CryptBinaryToString(@pcString, LEN(pcString),m.nFlags, NULL, @nBufsize)

  cDst = REPLICATE(CHR(0), m.nBufsize)

  IF CryptBinaryToString(@pcString, LEN(pcString), m.nFlags,@cDst, @nBufsize) = 0

   RETURN ""

  ENDIF

  RETURN cDst

ENDPROC

 

 * decodeString

* Toma una cadena en BAse64 y devuelve la cadena original

*

FUNCTION decodeString(pcB64)

  LOCAL nFlags, nBufsize, cDst

  nFlags=1  && base64

  nBufsize=0

  CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, NULL, @nBufsize, 0,0)

  cDst = REPLICATE(CHR(0), m.nBufsize)

  IF CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, @cDst, @nBufsize, 0,0) = 0

   RETURN ""

  ENDIF

  RETURN m.cDst

ENDPROC 

 

 

 * encodeFile

* Toma un archivo y lo codifica en base64

*

PROCEDURE encodeFile(pcFile)

  IF NOT FILE(pcFile)

   RETURN ""

  ENDIF

  RETURN THIS.encodeString(FILETOSTR(pcFile))

ENDPROC 

 

 

 * decodeFile

* Toma una cadena base64, la decodifica y crea un archivo con el contenido

*

PROCEDURE decodeFile(pcB64, pcFile)

  LOCAL cBuff

  cBuff = THIS.decodeString(pcB64)

  STRTOFILE(cBuff, pcFile)

ENDPROC

*

ENDDEFINE

 

Formas de usarla:

 

cBase64 = base64Helper.encodeString("ESTO ES UNA PRUEBA")

?cBase64 --> "RVNUTyBFUyBVTkEgUFJVRUJB"

 

cCadena = base64Helper.decodeString("RVNUTyBFUyBVTkEgUFJVRUJB")

?cCadena --> "ESTO ES UNA PRUEBA"

 

cBase64 = base64Helper.encodeFile("c:\documentos\propuesta.doc")

base64Helper.decodeFile(cBase64, "c:\temp\propuesta.doc")

 

 

 

 

De: pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org>  
[mailto:pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org> ] En nombre de Dorian Machado
Enviado el: viernes, 20 de noviembre de 2015 7:45
Para: MKHotmail
CC: Guillermo E. Villanueva; Lista Postgres ES


Asunto: Re: [pgsql-es-ayuda] Manera correcta de grabar una imagen

 

Hola MKHotmail

 

No manejo Visual Fox Pro, pero por aca encontre un link interesante que espero 
te pueda ayudar.

 

http://www.example-code.com/foxpro/base64-encode-decode.asp

 

2015-11-19 19:11 GMT-03:00 MKHotmail <mcanc...@hotmail.com 
<mailto:mcanc...@hotmail.com> >:

Excelente gracias por tu apoyo..

 

Lo trabajo con VFP 9.0

 

 

MK

 

De: pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org>  
[mailto:pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org> ] En nombre de Dorian Machado
Enviado el: miércoles, 18 de noviembre de 2015 02:42 p.m.
Para: Guillermo E. Villanueva <guillermo...@gmail.com 
<mailto:guillermo...@gmail.com> >
CC: MKHotmail <mcanc...@hotmail.com <mailto:mcanc...@hotmail.com> >; Lista 
Postgres ES <pgsql-es-ayuda@postgresql.org 
<mailto:pgsql-es-ayuda@postgresql.org> >


Asunto: Re: [pgsql-es-ayuda] Manera correcta de grabar una imagen

 

Hola MKHotmail

 

tabajar con tipos de datos bytea es una de las practicas mas comunes, pero me 
ha dado uno que otro problema de vez en cuando, pero no deja de ser una buena 
practica.

 

Lo que te recomendaria que harias y te puedo garanzarizar que funciona es lo 
siguiente:

 

1-) El campo imagen de la tabla donde piensas almacenarlas crealo de tipo TEXT

2-) Ahora en el codigo de tu aplicacion (no importa el lenguaje de 
programacion) en la seccion donde le haces input a la imagen ya sea desde un 
formulario o no se como manejas el app que estes trando; cuando recibas la 
imagen codificala base 64 y guardala en ese campo tipo TEXT que te dije que 
crearas

3-) Todo bien hasta el momento, pero te preguntaras: Ok ya codifique la imagen 
y la guarde en el campo TEXT, ahora como la muestro en mi web ?

 

pues es bastante facil, lo haces de la siguiente maneta como muestrra este 
segmento de codigo, donde  el texto largo denotado en color naranja es el 
contenido de tu campo TEXT que recojistes con un SELECT

 

<img alt="Embedded Image" 
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

Y listo eso es todo tienes todas tus imagenes centralizadas en una BD y 
guardades de manera sencilla.

 

Esto me fue de mucha ayuda en un proyecto que participe como DBA el cual era un 
App de comercializacion de Cafe, donde teniamos varios web servers para 
balanceo de carga compartiendo directorios de imagenes de productos via NFS y 
resultava muy tedioso cuando el servidor que hacia las veces de NSFS maestro 
caia, ya que, dejaba huerfanos a los otros servers, es decir sin imagenes.

 

Aplicando esto, ahora las imagenes se encontraban centralizadas en la BD y no 
importa si algun web servers de balanceo se caia.

 

Espero te sea util esta informacion


Saludos al grupo de ayuda de PostgreSQL

 

2015-11-18 13:21 GMT-02:00 Guillermo E. Villanueva <guillermo...@gmail.com 
<mailto:guillermo...@gmail.com> >:

Hola MK, si ya leíste las discusiones anteriores (que son muchas) creo que 
deberías hacer unas pruebas y sacar tus propias conclusiones.

 

El 17 de noviembre de 2015, 13:00, MKHotmail <mcanc...@hotmail.com 
<mailto:mcanc...@hotmail.com> > escribió:

Se ha discutido y no vi un buen final o un tuto de como debería ser… yo trabajo 
con Visual Fox 9.0… hay algunos ejemplos y nada claros… 

 

MK

 

De: pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org>  
[mailto:pgsql-es-ayuda-ow...@postgresql.org 
<mailto:pgsql-es-ayuda-ow...@postgresql.org> ] En nombre de Cesar Erices
Enviado el: lunes, 16 de noviembre de 2015 10:56 a.m.
Para: MKHotmail <mcanc...@hotmail.com <mailto:mcanc...@hotmail.com> >
CC: Lista Postgres ES <pgsql-es-ayuda@postgresql.org 
<mailto:pgsql-es-ayuda@postgresql.org> >
Asunto: Re: [pgsql-es-ayuda] Manera correcta de grabar una imagen

 

Este es un tema que se ha discutido mucho en esta lista, puedes ver el hitorial 
filtrando por

*       [pgsql-es-ayuda] ayuda imágenes
*       [pgsql-es-ayuda] Almacenar imagen ebn bytea con problemas en 9.2
*       Problema con índice y búsqueda.

Cada persona tiene diversos puntos de vista y todo dependerá que buscas: 
rapides, capacidad, busqueda, etc

 

El 16 de noviembre de 2015, 12:51, MKHotmail <mcanc...@hotmail.com 
<mailto:mcanc...@hotmail.com> > escribió:

Cual es la manera correcta de grabar una imageny después poder recuperarla…

 

 

Gracias

 

 

MK

 




-- 

Sin más que decir se despide de Usted, muy atentamente 

Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Especialista en ISO 27001 e ITIL

Cuenta Twitter: @caerices


Santiago - Chile

 





 

-- 

Dorian Machado





 

-- 

Dorian Machado

 

Responder a