如何为我使用 QNetworkAccessManager 上传的图像设置 QNetworkRequest::ContentTypeHeader 和 QNetworkRequest::ContentLe

Posted

技术标签:

【中文标题】如何为我使用 QNetworkAccessManager 上传的图像设置 QNetworkRequest::ContentTypeHeader 和 QNetworkRequest::ContentLengthHeader?【英文标题】:How to set QNetworkRequest::ContentTypeHeader and QNetworkRequest::ContentLengthHeader for an image I'm uploading using QNetworkAccessManager? 【发布时间】:2013-08-04 17:41:24 【问题描述】:

我正在尝试使用 POST 方法使用 Qt 的 QNetworkAccessManager 类将图像上传到 apache 服务器。我不明白的是,如何为图像设置适当的 QNetworkRequest::ContentTypeHeader 和 QNetworkRequest::ContentLengthHeader?如果ContentTypeHeader是“multipart/form-data”,那么边界应该设置成什么?

示例代码:

    data = new QFile("/home/darshan/aindra/1.png", this);
    if (data->open(QIODevice::ReadOnly))
    
        manager = new QNetworkAccessManager();
        req.setUrl(QUrl(upload_url));
        //space for req.setHeader() - contenttypeheader
        //space for req.setHeader() - contentlengthheader
        //reply = manager->post(req, QByteArray);
        connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(requestFinished(QNetworkReply*)));
        connect(reply, SIGNAL(uploadProgress(qint64, qint64)), SLOT(uploadProgress(qint64, qint64)));
    
    else
    
        qDebug() << "Could not open file to FTP";
    

【问题讨论】:

【参考方案1】:

从 Qt 4.8 开始,您可以使用QHttpMultipart 上传带有QNetworkAccessManager 的文件。

http://doc.qt.io/qt-4.8/qhttpmultipart.html

【讨论】:

我知道我不应该将评论部分用作感谢平台,但您只是通过告诉我这件事挽救了我的生命,为此,非常感谢。我现在可以顺利上传图片了:)

以上是关于如何为我使用 QNetworkAccessManager 上传的图像设置 QNetworkRequest::ContentTypeHeader 和 QNetworkRequest::ContentLe的主要内容,如果未能解决你的问题,请参考以下文章

如何为 GraphQL 使用数组模式类型

我如何为我的网站使用特定字体[重复]

如何为 keras 使用自定义损失函数

如何为多个用户存储信息

如何为 nsoperationqueue 正确使用 autoreleasepool

如何为 JTable 列添加 JXDatepicker