Senior
PostgreSQLda rasm qanday saqlanadi — bu kodlash yoki raqamlar to'plami emasmi? Rasmni matn shaklida qanday saqlash mumkin?
sobes.tech AI
AIdan javob
PostgreSQLda rasm odatda bytea turidagi maydon yoki katta ob'ekt (LOB) sifatida saqlanadi. Bu odatiy ma'noda kodlash emas, balki fayl mazmunini ifodalovchi baytlar ketma-ketligi.
Rasmni matn sifatida saqlash uchun, uni Base64 ga kodlash mumkin — bu ikkilamchi ma'lumotlarni ASCII satrga aylantiradi va matn maydonida saqlanishi mumkin. Biroq, bu usul ma'lumot hajmini taxminan 33% ga oshiradi.
Go tilida Base64 bilan rasm saqlash misoli:
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)
}
Ma'lumotlar bazasida, bu satrni text yoki varchar turidagi maydonda saqlash mumkin. Zarur bo'lsa, uni yana ikkilamchi formatga dekodlash mumkin.