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;
}