数据新建表格
tab_img,图片存储数据类型选择mediumblob,如图
!数据库格式在这里插入图片描述
具体实现代码如下
(1) 图片存储
QFile file(“E:/Images/123.jpg”);
if(!file.open(QIODevice::ReadOnly))
{
qDebug()<<“open failed”;
return;
}
QByteArray data = file.readAll();
if(data.isEmpty())
{
qDebug()<<“data is empty”;
}
file.close();
QSqlQuery query(m_DB);
QString sql = QString(“insert into tab_img (code,myImg) values(’%1’,?)”).arg(“111111”);
query.prepare(sql);
query.addBindValue(data);
if(!query.exec())
{
qDebug()<<query.lastError().text();
}
query.clear();
(2)、从数据库读取图片
QString sql = QString(“select * from tab_img where code = ‘111111’”);
QSqlQuery query(m_DB);
if(!query.exec(sql))
{
qDebug()<<"select "<<query.lastError().text();
}
while(query.next())
{
QString code = query.value(0).toString();
QByteArray bytes = query.value(1).toByteArray();
QBuffer buffer(&bytes);
buffer.open(QIODevice::ReadOnly);
QImageReader reader(&buffer,“JPG”);
QImage img = reader.read();
img.save(“E:/Images/666.jpg”);
}
这篇博客介绍了如何使用Qt将图片存储到MySQL数据库的mediumblob类型字段中,以及如何从数据库读取图片并保存到本地。首先,通过QFile读取图片并转化为QByteArray,然后使用QSqlQuery准备SQL插入图片数据。读取图片时,通过执行SQL查询获取QByteArray,再利用QBuffer和QImageReader将数据还原为QImage并保存到本地。

4522

被折叠的 条评论
为什么被折叠?



