Fast File Upload mit QHttp "PUT" methode

Code-Schnippsel, oder Tipps und Tricks, die einem beim Programmieren mit Qt helfen können.
Antworten
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Fast File Upload mit QHttp "PUT" methode

Beitrag von patrik08 »

Ich selber wollte es nicht glauben dass die methode POST fast 1/3 mehr Zeit benoetigt als die PUT methode .. Ganz besonders bei Riesen file ist der server Hoch belastet....


Das es relativ einfach ist hatte ich nie gedacht ...
In der anlage ist ein funktionierendes beispiel mit php incomming...
Getestet auf MAC / Window / linux mit server debian sarge php5 als modul & php.ini max 8MB upload....

Code: Alles auswählen

/*  class QCurl public */
void StartPutFile()
{
   wwwput = new QHttp();
   wwwput->setUser("","");
   connect(wwwput, SIGNAL(requestFinished(int, bool)), this, SLOT(httpRequestFinished(int, bool)));
   connect(wwwput, SIGNAL(responseHeaderReceived(const QHttpResponseHeader &)), this, SLOT(readResponseHeader(const QHttpResponseHeader &)));
}
/* RFC 2616 */ 
/*  class QCurl public  Http PUT Method  */

int Sender( QString beamupfile , QString posturl , QString LogFileapps )
{
    QFileInfo beamfaq(beamupfile);
    QString dateiName = beamfaq.fileName();
    QUrl url(posturl);
    wwwput->setHost(url.host(), 80); 
    logFile = new QFile(LogFileapps);
    logFile->open(QIODevice::ReadWrite); 
    putFile = new QFile(beamupfile);
    putFile->open(QIODevice::ReadOnly); 
    qint64 sizeallow = putFile->size();
    QHttpRequestHeader header("PUT", url.path(),1,1);   /* header */
    header.setValue("Host", url.host());
    header.setValue("Connection", "keep-alive");
    header.setValue("User-Agent", WEBAGENTNAME );
    /////////header.setValue("Content-length",QString::number(sizeallow));
    ///////qDebug() << "### beamfaq.size()    " << sizeallow;
    /////qDebug() << "### header.toString()     " << header.toString();
    /////qDebug() << "### beamfaq.size()    " << sizeallow;
    putid = wwwput->request(header, putFile, logFile);
    return putid;
}
Dateianhänge
upload.zip
(34.54 KiB) 373-mal heruntergeladen
.........................
speack português italiano deutsch english castellà qt
Antworten