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.