Artículo
· 12 oct, 2023 Lectura de 2 min

Cómo guardar y restaurar imágenes en un objeto utilizando cadenas Base64

Preguntas frecuentes de InterSystems

En el siguiente ejemplo, un archivo de imagen se codifica en una cadena Base64 en una propiedad de clase, se guarda, se decodifica la cadena en Base64 y se restaura en otro archivo.

【Classe ejemplo】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【Cuando se importa】

  set x=##class(User.test).%New() // create a new object

  // prepare an image
  set file=##class(%File).%New("c:\temp\Mii.png")
  do file.Open("RUK\BIN\")
  for {
       if file.AtEnd=1 quit
       // Convert image to Base64 format in chunks of 1024 bytes
       set cnt=file.Read(1024)
       set b64=$system.Encryption.Base64Encode(cnt) // b64: 1402byte
       do x.pics.Write(b64)
  }
  do x.%Save()
  do file.Close()


【Cuando se exporta desde una propiedad】

 // restore the file
 set file2=##class(%FileBinaryStream).%New()
 do file2.LinkToFile("C:\temp\xx.png")

 // Read from the database the User.test object
 set x=##class(User.test).%OpenId(1)

 for {
   if x.pics.AtEnd=1 quit
   set b64=x.pics.Read(1402)
   set cnt=$system.Encryption.Base64Decode(b64)
   do file2.Write(cnt)
 }
 do file2.SaveStream()
Comentarios (0)1
Inicie sesión o regístrese para continuar