/
imguploader.cpp
60 lines (44 loc) · 1.68 KB
/
imguploader.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "imguploader.h"
imgUploader::imgUploader(QObject *parent) :
QObject(parent)
{
UserAgent = "Fotomatis";
Uploading = false;
}
void imgUploader::uploadImage(QString FileName, QString PhpUploadURL, QString FieldName)
{
QUrl serviceUrl = QUrl(PhpUploadURL);
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QNetworkRequest request(serviceUrl);
request.setRawHeader("User-Agent", UserAgent.toAscii());
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + FieldName + "\"; filename=\"" + FileName + "\""));
QFile *file = new QFile(FileName);
file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);
multiPart->append(imagePart);
// Call the webservice
//QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
currentUpload = manager.post(request, multiPart);
connect(currentUpload,SIGNAL(uploadProgress(qint64,qint64)),this, SLOT(onUploadProgress(qint64,qint64)));
connect(currentUpload, SIGNAL(finished()),this,SLOT(onUploadFinished()));
Uploading = true;
//reply->deleteLater();
}
bool imgUploader::isUploading()
{
return Uploading;
}
void imgUploader::onUploadFinished()
{
//qDebug() << "c:upload finished";
Uploading = false;
currentUpload->deleteLater();
emit uploadFinished();
}
void imgUploader::onUploadProgress(qint64 uploaded, qint64 total)
{
emit uploadProgress( uploaded, total);
}