Sobes.tech
Senior

Cum se stochează o imagine în PostgreSQL — este o codificare sau un set de cifre? Cum să stochezi o imagine sub formă de text?

sobes.tech AI

Răspuns de la AI

În PostgreSQL, o imagine este de obicei stocată sub formă de date binare într-un câmp de tip bytea sau într-un obiect mare (LOB). Aceasta nu este o codificare în sensul obișnuit, ci pur și simplu o secvență de octeți care reprezintă conținutul fișierului.

Pentru a stoca imaginea sub formă de text, aceasta poate fi codificată în Base64 — ceea ce convertește datele binare într-un șir ASCII, care poate fi salvat într-un câmp de text. Totuși, această metodă crește dimensiunea datelor cu aproximativ 33%.

Exemplu de stocare a unei imagini în Base64 în Go:

import (
    "encoding/base64"
    "io/ioutil"
    "log"
)

func encodeImageToBase64(path string) string {
    data, err := ioutil.ReadFile(path)
    if err != nil {
        log.Fatal(err)
    }
    return base64.StdEncoding.EncodeToString(data)
}

În baza de date, această șir poate fi salvat într-un câmp de tip text sau varchar. Dacă este necesar, poate fi decodificat înapoi în format binar.