完成发布

This commit is contained in:
2025-03-27 00:56:01 +08:00
parent 8b8b70c671
commit 694f182918
18 changed files with 476 additions and 92 deletions

View File

@@ -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 {

View File

@@ -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();