Hi,
I am new in qt. I am using QNetworkAccessManager’s put method to upload a file to http server. I am able to send files of upto 600KB but bigger files fail to upload. Also i am not sure whether the code that i am using is optimized or not. This is what I am using.
bool HTTPClient::sendFile(QString imagePath)
{
bool isSuccess = false;
initNetworkResponse();
QIODevice *file = new QFile(imagePath);
bool isOpened = file->open(QIODevice::ReadOnly);
QByteArray fileData;
fileData = file->readAll();
if(!isOpened)
{
qDebug("file could not be opened!");
return false;
}
else
{
qDebug("file opened successfully!");
qDebug("size: %d", fileData.size());
if(fileData.size()>kMAX_UPLOAD_FILE_SIZE)
{
QMessageBox::information(NULL, "File transfer", "File is too big! Choose a file of size <15MB.");
}
}
QUrl requestURI( cleanURL(QString(kROOTURL) + QString(kFILETRANSFER_URL)));
QNetworkRequest networkRequest = createRequestHeadder(requestURI);
networkRequest.setRawHeader(kCONTENT_NAME_KEY, kFILE_NAME);
QNetworkReply *response = NULL;
mNetworkManager = new NetworkAccessManager(this);
// Generate data
mNetworkManager->syncPut(networkRequest, fileData, response);
if(QNetworkReply::NoError == mNetworkError ||
kNETWORK_REPLY_SUCCESS == mResponseCode)
{
bool ok;
QVariantMap result = Json::parse(mNetworkResponse, ok).toMap();
if(ok)
{
isSuccess = true;
}
}
file->close();
delete mNetworkManager;
mNetworkManager = NULL;
return isSuccess;
}
Can some expert plz suggest a better way to upload and download bigger files in Qt?
Thanks
qt developer
↧