{
unsigned int r=0;
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request
(QUrl(diagUrl.
toUtf8()));
QHttpMultiPart *multipart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart chipCardSn;
chipCardSn.
setHeader(QNetworkRequest
::ContentDispositionHeader,
QVariant("form-data; name=\"chipcardsn\""));
chipCardSn.setBody(cardNumber.toUtf8());
QHttpPart banker;
banker.
setHeader(QNetworkRequest
::ContentDispositionHeader,
QVariant("form-data; charset=iso-8859-2; name=\"banker\""));
banker.setBody(bankerName.toUtf8());
QHttpPart fileName;
fileName.
setHeader(QNetworkRequest
::ContentDispositionHeader,
QVariant("form-data; charset=iso-8859-2; name=\"FileName\""));
fileName.setBody(filename.toUtf8());
QHttpPart diagnostics;
diagnostics.
setHeader(QNetworkRequest
::ContentDispositionHeader,
QVariant("form-data; name=\"Diagnostics\""));
diagnostics.
setHeader(QNetworkRequest
::ContentTypeHeader,
QVariant("application/x-zip-compressed"));
//load zip a convert to base64
int length;
char * buffer;
ifstream is;
is.open ("/tmp/" + filename.toUtf8(), ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();
for(int i=0; i<length; i++)
{
array[i] = buffer[i];
}
array=array.toBase64();
for(int i=56; i<array.length(); i+=57)
{
array.insert(i, "\n");
}
diagnostics.setBody(array);
multipart->append(chipCardSn);
multipart->append(banker);
multipart->append(fileName);
multipart->append(diagnostics);
QNetworkReply *reply = manager->post(request, multipart);
reply->ignoreSslErrors();
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
timer.singleShot(30000, &loop, SLOT(quit()));
loop.exec();
if(reply->isFinished())
{
return 0;
} else
return 1;
}
}
int CardManager::postZipFile(QString cardNumber, QString bankerName, QString filename)
{
unsigned int r=0;
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request(QUrl(diagUrl.toUtf8()));
QHttpMultiPart *multipart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart chipCardSn;
chipCardSn.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"chipcardsn\""));
chipCardSn.setBody(cardNumber.toUtf8());
QHttpPart banker;
banker.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; charset=iso-8859-2; name=\"banker\""));
banker.setBody(bankerName.toUtf8());
QHttpPart fileName;
fileName.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; charset=iso-8859-2; name=\"FileName\""));
fileName.setBody(filename.toUtf8());
QHttpPart diagnostics;
diagnostics.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"Diagnostics\""));
diagnostics.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-zip-compressed"));
//load zip a convert to base64
int length;
char * buffer;
ifstream is;
is.open ("/tmp/" + filename.toUtf8(), ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();
QByteArray array;
for(int i=0; i<length; i++)
{
array[i] = buffer[i];
}
array=array.toBase64();
for(int i=56; i<array.length(); i+=57)
{
array.insert(i, "\n");
}
diagnostics.setBody(array);
multipart->append(chipCardSn);
multipart->append(banker);
multipart->append(fileName);
multipart->append(diagnostics);
QEventLoop loop;
QNetworkReply *reply = manager->post(request, multipart);
reply->ignoreSslErrors();
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
QTimer timer;
timer.singleShot(30000, &loop, SLOT(quit()));
loop.exec();
if(reply->isFinished())
{
return 0;
} else
return 1;
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks