完成发布
This commit is contained in:
@@ -156,28 +156,6 @@ void TCHttpService::apiUpload(const QString &filePath)
|
||||
});
|
||||
}
|
||||
|
||||
void TCHttpService::apiSharePicShare(const QString &fileName, const QString &md5)
|
||||
{
|
||||
|
||||
QString urlStr;
|
||||
if (m_enableSsl)
|
||||
urlStr = "https://" + m_domain + "/api/sharepic";
|
||||
else
|
||||
urlStr = "http://" + m_domain + "/api/sharepic";
|
||||
|
||||
QMap<QString, QString> headers;
|
||||
QMap<QString, QString> body;
|
||||
QMap<QString, QString> params;
|
||||
|
||||
headers.insert("Content-Type", "application/json");
|
||||
|
||||
QString bodyStr = QString("\"%1\":\"%2\",\"%3\":\"%4\",\"%5\":\"%6\",\"%7\":\"%8\"").arg("token").arg(m_token).
|
||||
arg("user").arg(m_userName).arg("md5").arg(md5).arg("filename").arg(fileName);
|
||||
|
||||
params.insert("cmd", "share");
|
||||
|
||||
}
|
||||
|
||||
void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString domain)
|
||||
{
|
||||
this->m_domain = domain;
|
||||
@@ -203,9 +181,11 @@ void TCHttpService::setUploadNum(int nb)
|
||||
|
||||
void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl)
|
||||
{
|
||||
#if 0
|
||||
#if 1
|
||||
QPixmap cachedPixmap;
|
||||
if (QPixmapCache::find(imageUrl.toString(), &cachedPixmap)) {
|
||||
|
||||
|
||||
emit signal_imageDownloaded(requestId, cachedPixmap);
|
||||
return;
|
||||
}
|
||||
@@ -217,7 +197,9 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
}
|
||||
#endif
|
||||
QNetworkRequest request(imageUrl);
|
||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferNetwork);
|
||||
QNetworkReply* reply = m_manager.get(request);
|
||||
m_pendingRequests[reply] = requestId;
|
||||
|
||||
connect(reply, &QNetworkReply::finished, [this, reply](){
|
||||
|
||||
@@ -229,6 +211,7 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
cacheImage(reply->url(), pixmap);
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
@@ -236,9 +219,31 @@ void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
reply->deleteLater();
|
||||
});
|
||||
m_pendingRequests[reply] = requestId;
|
||||
// connect(reply, &QNetworkReply::finished, [this, reply, imageUrl](){
|
||||
|
||||
// QString requestId = m_pendingRequests.take(reply);
|
||||
|
||||
// if (reply->error() != QNetworkReply::NoError) {
|
||||
// emit signal_downloadFailed(requestId, reply->errorString());
|
||||
// }
|
||||
// else {
|
||||
// QPixmap pixmap;
|
||||
// if (pixmap.loadFromData(reply->readAll())) {
|
||||
// QPixmapCache::insert(imageUrl.toString(), pixmap);
|
||||
// emit signal_imageDownloaded(requestId, pixmap);
|
||||
// }
|
||||
// else {
|
||||
// emit signal_downloadFailed(requestId, "Failed to load image data");
|
||||
// }
|
||||
// }
|
||||
|
||||
// reply->deleteLater();
|
||||
// });
|
||||
// connect(reply, &QNetworkReply::finished, this, &TCHttpService::slot_downloadFinished);
|
||||
|
||||
}
|
||||
|
||||
QUrl TCHttpService::encodeUrl(QString urlStr, QMap<QString, QString> params)
|
||||
@@ -314,6 +319,16 @@ QString TCHttpService::getCacheFilePath(const QUrl &imageUrl)
|
||||
return QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/" + fileName;
|
||||
}
|
||||
|
||||
void TCHttpService::cacheImage(const QUrl &imageUrl, const QPixmap &pixmap)
|
||||
{
|
||||
QPixmapCache::insert(imageUrl.toString(), pixmap);
|
||||
|
||||
QString filePath = getCacheFilePath(imageUrl);
|
||||
pixmap.save(filePath, "PNG");
|
||||
|
||||
cleanOldCacheFiles();
|
||||
}
|
||||
|
||||
TCHttpService::TCHttpService(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
@@ -329,6 +344,7 @@ void TCHttpService::slot_downloadFinished(QNetworkReply *reply)
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
cacheImage(reply->url(), pixmap);
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -41,7 +41,6 @@ public:
|
||||
void apiMd5(const QString& filePath);
|
||||
#endif
|
||||
void apiUpload(const QString& filePath);
|
||||
void apiSharePicShare(const QString& fileName, const QString& md5);
|
||||
void setConfiguration(QString userName, QString firstPwd, QString domain);
|
||||
void setSsl(bool enable);
|
||||
bool getOnlineState();
|
||||
@@ -55,6 +54,7 @@ private:
|
||||
void cleanOldCacheFiles();
|
||||
bool getCachedImage(const QUrl& imageUrl, QPixmap& pixmap);
|
||||
QString getCacheFilePath(const QUrl& imageUrl);
|
||||
void cacheImage(const QUrl& imageUrl, const QPixmap& pixmap);
|
||||
|
||||
signals:
|
||||
void signal_loginSuc();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "urldatabase.h".h"
|
||||
#include "urldatabase.h"
|
||||
#include <QSqlQuery>
|
||||
#include <QSqlError>
|
||||
#include <QDebug>
|
||||
@@ -171,6 +171,33 @@ bool ImageManager::addImageUrl(const QString &domain, const QString &user, const
|
||||
return query.exec();
|
||||
}
|
||||
|
||||
bool ImageManager::removeImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl)
|
||||
{
|
||||
int domainId = getDomainId(domain);
|
||||
int userId = getUserId(user);
|
||||
|
||||
if (domainId == -1 || userId == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
query.prepare("SELECT id FROM domain_users WHERE domain_id = ? AND user_id = ?");
|
||||
query.addBindValue(domainId);
|
||||
query.addBindValue(userId);
|
||||
|
||||
if (!query.exec() || !query.next()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int domainUserId = query.value(0).toInt();
|
||||
query.prepare("DELETE FROM image_urls WHERE domain_user_id = ? AND image_url = ?");
|
||||
query.addBindValue(domainUserId);
|
||||
query.addBindValue(imageUrl.toString());
|
||||
|
||||
|
||||
return query.exec();
|
||||
}
|
||||
|
||||
QList<QUrl> ImageManager::getImageUrls(const QString &domain, const QString &user)
|
||||
{
|
||||
QList<QUrl> urls;
|
||||
|
||||
@@ -30,9 +30,12 @@ public:
|
||||
// 添加域名-用户对(不重复)
|
||||
bool addDomainUser(const QString &domain, const QString &user);
|
||||
|
||||
// bool deleteDomainUser(const QString& domain, const QString& user);
|
||||
|
||||
// 上传成功后添加图片URL
|
||||
bool addImageUrl(const QString &domain, const QString &user, const QUrl &imageUrl);
|
||||
|
||||
bool removeImageUrl(const QString& domain, const QString& user, const QUrl& imageUrl);
|
||||
// 获取特定域名-用户的所有图片URL
|
||||
QList<QUrl> getImageUrls(const QString &domain, const QString &user);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user