Senior
Как се съхранява изображение в PostgreSQL — това някаква кодировка или набор от цифри? Как да съхраняваме изображение като текст?
sobes.tech AI
Отговор от AI
В PostgreSQL изображението обикновено се съхранява като двоични данни в поле от тип bytea или като голям обект (LOB). Това не е кодиране в обичайния смисъл, а просто последователност от байтове, представляващи съдържанието на файла.
За съхраняване на изображението като текст, то може да бъде кодирано в Base64 — това преобразува двоичните данни в ASCII низ, който може да бъде запазен в текстово поле. Въпреки това, този метод увеличава размера на данните с около 33%.
Пример за съхраняване на изображение в Base64 в 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)
}
В базата данни, тази низова стойност може да бъде запазена в поле от тип text или varchar. Ако е необходимо, тя може да бъде декодирана обратно в двоичен формат.