QNetworkAccessManager *http_upload = new QNetworkAccessManager(this);
QNetworkRequest requpl;
QString toDropboxDir
= metadata.
value("path");
if (!toDropboxDir.isEmpty())
{
toDropboxDir = toDropboxDir.right(toDropboxDir.size()-1);
}
std::string stuff_std = OAuthWebRequestUpload("http://api-content.dropbox.com/0/files/dropbox/"+toDropboxDir.toStdString(),"POST",consumerKey,consumerSecret,token,secret,"",param.toStdString());
stuff_BA = stuff.toAscii();
qsrand
(QDateTime::currentDateTime().
toTime_t());
QString boundaryStr
("---------------------------"+boundary_random
);
QString boundary
="--"+boundaryStr
+crlf;
tcpSocket->connectToHost("api-content.dropbox.com",80);
connect(tcpSocket, SIGNAL(connected()), this, SLOT(filler()));
connect(tcpSocket,
SIGNAL(error
(QAbstractSocket::SocketError)),
this,
SLOT(erase_multipartform
()));
//setting header to the request (with neccessary OAuth authorization)
requpl.
setUrl(QUrl(QString("http://api-content.dropbox.com/0/files/dropbox/"+metadata.
value("path"))+"?file="+param
));
requpl.setRawHeader("Authorization", stuff_BA);
requpl.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary="+boundaryStr);
//sending content
stream << "Authorization "+stuff;
qDebug() << "Authorization "+stuff;
stream << "--"+boundaryStr << "\r\n";
//qDebug() << "--"+boundaryStr << "\r\n";
stream << "Content-Disposition: form-data; name=\"file\"; filename=\""+param+"\"" << "\r\n";
//qDebug() << "Content-Disposition: form-data; name=\"file\"; filename=\""+param+"\"" << "\r\n";
stream << "Content-Type: text/plain" << "\r\n" << "\r\n";
//qDebug() << "Content-Type: "+param_mime << "\r\n" << "\r\n";
int iBlock = 0;
while(!file_upload->atEnd())
{
qDebug()<<"Reading Line: "<<++iBlock;
//stream << (quint16)0;
//stream << file_upload->readLine().data();
stream << file_upload->readAll().data();
tcpSocket->write(payload);
tcpSocket->flush();
//qDebug() << QString(file_upload->readAll().constData());
payload.clear();
}
file_upload->close();
stream << "\r\n" << "--"+boundaryStr+"--" << "\r\n";
//qDebug() << "\r\n" << "--"+boundaryStr+"--" << "\r\n";
reply_upload = http_upload->post(requpl,payload);
connect(reply_upload, SIGNAL(finished()), this, SLOT(readData_upload()));
tcpSocket = new QTcpSocket();
QString param = "upload.txt";
QNetworkAccessManager *http_upload = new QNetworkAccessManager(this);
QNetworkRequest requpl;
QString toDropboxDir = metadata.value("path");
if (!toDropboxDir.isEmpty())
{
toDropboxDir = toDropboxDir.right(toDropboxDir.size()-1);
}
std::string stuff_std = OAuthWebRequestUpload("http://api-content.dropbox.com/0/files/dropbox/"+toDropboxDir.toStdString(),"POST",consumerKey,consumerSecret,token,secret,"",param.toStdString());
QString stuff = QString::fromStdString(stuff_std);
QByteArray stuff_BA;
stuff_BA = stuff.toAscii();
qsrand(QDateTime::currentDateTime().toTime_t());
QString boundary_random = QVariant(qrand()).toString()+QVariant(qrand()).toString()+QVariant(qrand()).toString();
QString crlf("\r\n");
QString boundaryStr("---------------------------"+boundary_random);
QString boundary="--"+boundaryStr+crlf;
tcpSocket->connectToHost("api-content.dropbox.com",80);
connect(tcpSocket, SIGNAL(connected()), this, SLOT(filler()));
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(erase_multipartform()));
//setting header to the request (with neccessary OAuth authorization)
requpl.setUrl(QUrl(QString("http://api-content.dropbox.com/0/files/dropbox/"+metadata.value("path"))+"?file="+param));
requpl.setRawHeader("Authorization", stuff_BA);
requpl.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary="+boundaryStr);
QFile *file_upload = new QFile(param_path);
file_upload->open(QIODevice::ReadOnly);
//sending content
QByteArray payload;
QDataStream stream(&payload, QIODevice::WriteOnly);
stream.setVersion(QDataStream::Qt_4_7);
stream << "Authorization "+stuff;
qDebug() << "Authorization "+stuff;
stream << "--"+boundaryStr << "\r\n";
//qDebug() << "--"+boundaryStr << "\r\n";
stream << "Content-Disposition: form-data; name=\"file\"; filename=\""+param+"\"" << "\r\n";
//qDebug() << "Content-Disposition: form-data; name=\"file\"; filename=\""+param+"\"" << "\r\n";
stream << "Content-Type: text/plain" << "\r\n" << "\r\n";
//qDebug() << "Content-Type: "+param_mime << "\r\n" << "\r\n";
int iBlock = 0;
while(!file_upload->atEnd())
{
qDebug()<<"Reading Line: "<<++iBlock;
//stream << (quint16)0;
//stream << file_upload->readLine().data();
stream << file_upload->readAll().data();
tcpSocket->write(payload);
tcpSocket->flush();
//qDebug() << QString(file_upload->readAll().constData());
payload.clear();
}
file_upload->close();
stream << "\r\n" << "--"+boundaryStr+"--" << "\r\n";
//qDebug() << "\r\n" << "--"+boundaryStr+"--" << "\r\n";
reply_upload = http_upload->post(requpl,payload);
connect(reply_upload, SIGNAL(finished()), this, SLOT(readData_upload()));
To copy to clipboard, switch view to plain text mode
Bookmarks