风泥

导航

Qt上传文件

Qt 上传图片到服务器

#define BOUND "margin"
void setHttpUrl()
{
    QFile file(imagePath);
    QFileInfo fileInfo(file);   //文件
    //url字符串拼接的时候,第一个拼接字符前要加上"?"
    QUrl url("http://www.***.com/update-product-info/plugin.php?special=index&run=upload");
    QByteArray data;
    data.append("--" + QByteArray(BOUND) + "\r\n");
    data.append("Content-Disposition: form-data; name=\"product_name\"\r\n\r\n");

#ifdef Q_OS_MAC
    data.append(qApp->applicationName().toUtf8() + QString(" mac").toUtf8());
#else
    data.append(qApp->applicationName().toUtf8());
#endif

    data.append("\r\n");

    data.append("--" + QByteArray(BOUND) + "\r\n");
    data.append("Content-Disposition: form-data; name=\"Movie_Title\"\r\n\r\n");
    data.append(moveTitle.toUtf8());
    data.append("\r\n");

    data.append("--" + QByteArray(BOUND) + "\r\n");
    data.append("Content-Disposition: form-data; name=\"file\";filename=\"");
    data.append(fileInfo.fileName().toUtf8());
    data.append("\"\r\n");
    data.append("Content-Type: image/jpeg\r\n\r\n");

    //将文件内容写到数据中
    if (file.open(QIODevice::ReadOnly))
    {
        data.append(file.readAll());   //let's read the file
        data.append("\r\n");
    }

    data.append("--" + QByteArray(BOUND) + "--\r\n");  //closing

    QNetworkRequest request(url);
    request.setRawHeader(QString("Content-Type").toAscii(),
                        QString("multipart/form-data; boundary=" + QByteArray(BOUND)).toAscii());
    request.setRawHeader(QString("Content-Length").toAscii(),
                        QString::number(data.length()).toAscii());
    //post url
    QNetworkReply *reply = BrowserApplication::networkAccessManager()->post(request , data);
}

posted on 2016-03-23 17:25  风泥  阅读(478)  评论(0)    收藏  举报