-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhttpupload.cpp
68 lines (55 loc) · 1.95 KB
/
httpupload.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
61
62
63
64
65
66
67
68
#include "httpupload.h"
httpUpload::httpUpload()
{
a="----WebKitFormBoundaryRZcMJAhkXQinLxmW";
multiPart=NULL;
file=NULL;
}
void httpUpload::multiPartClear()
{
qDebug()<<"multiPartClear";
multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
multiPart->setBoundary(a.toLatin1());
}
void httpUpload::appendText(QString name, QString content)
{
QHttpPart textPart;
QString stringTmp=QString("form-data; name=\"")+name+QString("\"");
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(stringTmp));
textPart.setBody(content.toStdString().c_str());
multiPart->append(textPart);
}
void httpUpload::closeImageFile()
{
file->close();
file=NULL;
}
void httpUpload::appendImg(QString cdh,QString fileName)
{
qDebug()<<cdh;
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(cdh));
if(QFileInfo(fileName).suffix()=="jpg" || QFileInfo(fileName).suffix()=="jpeg")
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
else if(QFileInfo(fileName).suffix()=="png")
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
qDebug()<<"imagepart setheader finished";
file = new QFile(fileName);
qDebug()<<"7";
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);
file->setParent(multiPart);
multiPart->append(imagePart);
}
void httpUpload::doUpload()
{
request.setHeader(QNetworkRequest::ContentTypeHeader,"multipart/form-data;boundary="+a);
request.setUrl(url);
reply = manager.post(request, multiPart);
multiPart->setParent(reply);
connect(reply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(downloadProgress(qint64,qint64)));
#if QT_CONFIG(ssl)
connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
SLOT(sslErrors(QList<QSslError>)));
#endif
}