Български English Español

Как да съхраним и извлечем изображение или файл от SQLite

Изображенията и файловете като цяло могат да се съхраняват в база данни. Ето един начин да направите това като изпълните следните стъпки:

1. Прочетете файла в QByteArray.
2. Съхранете QByteArray-я като бинарен обект(Binary Large Object) в базата данни.

За пример :

  1.  
  2.     QFile file(fileName);
  3.     if (!file.open(QIODevice::ReadOnly)) return;
  4.     QByteArray byteArray = file.readAll();
  5.  
  6.     QSqlQuery query;
  7.     query.prepare("INSERT INTO imgtable (imgdata) VALUES (?)");
  8.     query.addBindValue(byteArray);
  9.     query.exec();

Сега изображението/файла може да се получи като всеки друг вид данни:

  1.     QSqlQuery query("SELECT imgdata FROM imgtable");
  2.     query.next();
  3.     QByteArray array = query.value(0).toByteArray();

Създаване на QPixmap от QByteArray :

  1.     QPixmap pixmap = QPixmap();
  2.     pixmap.loadFromData(array);

И сме говоти! Сега пиксмапа може да се използва в бутон каот икона или в QLabel и т.н.

Categories: