En esta página

QHttpMultiPart Class

La clase QHttpMultiPart se asemeja a un mensaje MIME multiparte para ser enviado a través de HTTP. Más...

Cabecera: #include <QHttpMultiPart>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Hereda: QObject

Tipos Públicos

enum ContentType { MixedType, RelatedType, FormDataType, AlternativeType }

Funciones Públicas

QHttpMultiPart(QObject *parent = nullptr)
QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)
virtual ~QHttpMultiPart()
void append(const QHttpPart &httpPart)
QByteArray boundary() const
void setBoundary(const QByteArray &boundary)
void setContentType(QHttpMultiPart::ContentType contentType)

Descripción Detallada

QHttpMultiPart se asemeja a un mensaje multiparte MIME, como se describe en RFC 2046, que se va a enviar a través de HTTP. Un mensaje multiparte consta de un número arbitrario de partes del cuerpo (véase QHttpPart), separadas por un único límite. El límite de QHttpMultiPart se construye con la cadena "boundary_.oOo._" seguida de caracteres aleatorios, y proporciona suficiente unicidad para asegurar que no ocurre dentro de las propias partes. Si se desea, el límite puede establecerse a través de setBoundary().

Como ejemplo, considere el siguiente fragmento de código, que construye un mensaje multiparte que contiene una parte de texto seguida de una parte de imagen:

QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);

QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
textPart.setBody("my text");

QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\""));
QFile *file = new QFile("image.jpg");
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);
file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart

multiPart->append(textPart);
multiPart->append(imagePart);

QUrl url("http://my.server.tld");
QNetworkRequest request(url);

QNetworkAccessManager manager;
QNetworkReply *reply = manager.post(request, multiPart);
multiPart->setParent(reply); // delete the multiPart with the reply
// here connect signals etc.

Véase también QHttpPart y QNetworkAccessManager::post().

Documentación de tipos de miembros

enum QHttpMultiPart::ContentType

Lista de tipos de contenido conocidos para un subtipo multiparte según se describe en RFC 2046 y otros.

ConstanteValorDescripción
QHttpMultiPart::MixedType0corresponde al subtipo "multipart/mixed", lo que significa que las partes del cuerpo son independientes entre sí, como se describe en la RFC 2046.
QHttpMultiPart::RelatedType1corresponde al subtipo "multipart/related", lo que significa que las partes del cuerpo están relacionadas entre sí, como se describe en la RFC 2387.
QHttpMultiPart::FormDataType2corresponde al subtipo "multipart/form-data", lo que significa que las partes del cuerpo contienen elementos de formulario, como se describe en la RFC 2388.
QHttpMultiPart::AlternativeType3corresponde al subtipo "multipart/alternative", lo que significa que las partes del cuerpo son representaciones alternativas de la misma información, como se describe en RFC 2046.

Véase también setContentType().

Documentación de funciones miembro

[explicit] QHttpMultiPart::QHttpMultiPart(QObject *parent = nullptr)

Construye un QHttpMultiPart con el tipo de contenido MixedType y establece parent como el objeto padre.

Véase también QHttpMultiPart::ContentType.

[explicit] QHttpMultiPart::QHttpMultiPart(QHttpMultiPart::ContentType contentType, QObject *parent = nullptr)

Construye un QHttpMultiPart con el tipo de contenido contentType y establece parent como el objeto padre.

Véase también QHttpMultiPart::ContentType.

[virtual noexcept] QHttpMultiPart::~QHttpMultiPart()

Destruye la multiparte.

void QHttpMultiPart::append(const QHttpPart &httpPart)

Añade httpPart a esta multiparte.

QByteArray QHttpMultiPart::boundary() const

devuelve el límite.

Véase también setBoundary().

void QHttpMultiPart::setBoundary(const QByteArray &boundary)

Establece el límite en boundary.

Normalmente, no es necesario generar un límite por sí mismo; al construirlo, el límite se inicia con la cadena "boundary_.oOo._" seguida de caracteres aleatorios, y proporciona suficiente unicidad para asegurarse de que no ocurre dentro de las propias partes.

Véase también boundary().

void QHttpMultiPart::setContentType(QHttpMultiPart::ContentType contentType)

Establece el tipo de contenido en contentType. El tipo de contenido se utilizará en la sección de cabecera HTTP cuando se envíe el mensaje multiparte a través de QNetworkAccessManager::post(). En caso de que desees utilizar un subtipo multiparte no contenido en QHttpMultiPart::ContentType, puedes añadir a mano el campo de cabecera "Content-Type" a QNetworkRequest y, a continuación, utilizar esta solicitud junto con el mensaje multiparte para su envío.

Véase también QHttpMultiPart::ContentType y QNetworkAccessManager::post().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.